我有一个非常简单的WCF 工作流服务项目,其中只有 1 个 xamlx。XAMLX 也非常简单,只需一个接收活动,然后调用另一个 xaml 工作流。
这是 xamlx 服务:
我的问题是如何在我的 xamlx 服务中配置 Log4net,以便后续工作流生成的所有未处理错误都可以记录到事件日志中?
我有一个非常简单的WCF 工作流服务项目,其中只有 1 个 xamlx。XAMLX 也非常简单,只需一个接收活动,然后调用另一个 xaml 工作流。
这是 xamlx 服务:
我的问题是如何在我的 xamlx 服务中配置 Log4net,以便后续工作流生成的所有未处理错误都可以记录到事件日志中?
您可能想看看Workflow Tracking and Tracing。主要是关于如何创建您自己的TrackingParticipant,您可以在其中记录多个TrackingRecords。您甚至可以创建自己的CustomTrackingRecord以由您的自定义活动发出。
实际上,您已经可以使用EtwTrackingParticipant来完成您想要的工作,而无需使用 log4net。您可以在此处查看如何配置它并在事件查看器上访问它的事件数据。
因为我找不到任何自动记录所有未处理错误的方法。我通过添加 Try/Catch 活动并添加一些代码活动来记录错误解决了我的问题。
为了配置 Logger,我将它添加[assembly: log4net.Config.XmlConfigurator(Watch = true)]
到了 assembly.cs,然后创建了 2 个代码活动。
一个获取记录器:
ILog logger = LogManager.GetLogger("LogName");
return logger;
其次记录错误:
logger.Get(context).Error(ex.Get(context));
我更新的 xamlx 如下所示:
如果有人有其他更好的选择,请告诉我。谢谢