如何为 WCF 工作流服务配置 Log4net

How to configure Log4net for WCF Workflow Service

我有一个非常简单的 WCF 工作流服务项目,其中只有 1 xamlx。 XAMLX 也非常简单,一个接收 activity 然后调用另一个 xaml 工作流。

这是 xamlx 服务:

我的问题是如何在我的 xamlx 服务中配置 Log4net,以便可以将后续工作流生成的所有未处理错误记录到事件日志中?

因为我找不到任何自动记录所有未处理错误的方法。我通过添加 Try/Catch activity 并添加一些代码活动来记录错误来解决我的问题。

为了配置记录器,我将此 [assembly: log4net.Config.XmlConfigurator(Watch = true)] 添加到 assembly.cs,然后创建了 2 个代码活动。

一个获取记录器:

  ILog logger = LogManager.GetLogger("LogName");
  return logger;

第二次记录错误:

  logger.Get(context).Error(ex.Get(context));

我更新的 xamlx 如下所示:

如果有人有更好的选择,请告诉我。谢谢

您可能想看看 Workflow Tracking and Tracing. Mainly on how to create your own TrackingParticipant where you've several TrackingRecords available to log. You can even create your own CustomTrackingRecord 由您的自定义活动发出。

实际上,您已经EtwTrackingParticipant that probably does the job you want, without using log4net. You can see here了解如何在事件查看器上配置它和访问它的事件数据。