【问题标题】:Including additional properties using PostSharp, Log4Net and Unity包括使用 PostSharp、Log4Net 和 Unity 的附加属性
【发布时间】:2015-06-15 13:34:50
【问题描述】:

我有一个 WCF 应用程序,它使用 Unity (3.5.1404) 通过 Unity.Wcf (3.5.1404) 和 PostSharp.Patterns.Diagnostics.Log4Net (4.1.14) 和 Log4Net (2.0.3) 进行日志记录UnityLog4NetExtension (1.1)。

这一切都按预期工作,我可以同时记录到事件日志和 SQL Server。

但是,我只能看到如何包含内置的 Log4Net 属性 - 日期、线程、记录器、级别、消息、异常和位置。

我想将服务器主机名和其他自定义属性添加到日志中。

我知道我可以通过 Log4Net 配置在日志中包含额外的属性 - %property{host} - 但我无法通过 PostSharp 的编织日志代码确定将代码放置在何处。

这可能吗?

我是否必须编写自定义方面来执行此操作?

【问题讨论】:

标签: c# wcf log4net unity-container postsharp


【解决方案1】:

最简单的方法是将代码放在您的Global.asax 中,像这样。

protected void Application_Start(Object sender, EventArgs e) {
    log4net.GlobalContext.Properties["host"] = System.Environment.MachineName;
    log4net.Config.XmlConfigurator.Configure();
}

只要您的服务启动,就会调用 Application_Start 函数。 还要注意对Configure 的调用,以确保正确初始化log4net。 当然,除了 web.config 之外,您不必修改任何其他内容。

【讨论】:

  • 太棒了!对于 Unity.WCF,它实际上属于 Factory 类,但它可以工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 2017-06-27
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多