log4net配置 - appender中的GlobalContext.Property无效

时间:2017-11-03 11:16:17

标签: c# log4net log4net-configuration log4net-appender

以与我一直相同的方式配置log4net。我在Application_Start(ASP.NET Web窗体)中设置了一个名为svr的全局属性,并设置了appender但它不起作用。

appender如下:

    <appender name="RollingFileAppender_Inf" type="log4net.Appender.RollingFileAppender">
  <file type="log4net.Util.PatternString" value="C:\Logs\icomply_%property{svr}_info.log" />
  <appendToFile value="true" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="-1" />
  <maximumFileSize value="50GB" />
  <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%date [%thread] %-5p %message%n" />
  </layout>
  <threshold value="INFO"/>
</appender>

在我的Global.asax.cs中我有

private void Application_Start(object sender, EventArgs e)
{
    GlobalContext.Properties["svr"] = MyEnvironment.Server;
}

但是文件名是icomply_(null)_info.log,而log4net跟踪说明了这一点(在很多其他事情中)

    log4net: Loading Appender [RollingFileAppender_Inf] type: [log4net.Appender.RollingFileAppender]
    log4net: Parameter [file] specified subtype [log4net.Util.PatternString]
    log4net: Converter [literal] Option [C:\Logs\icomply_] Format [min=-1,max=2147483647,leftAlign=False]
    log4net: Converter [property] Option [svr] Format [min=-1,max=2147483647,leftAlign=False]
    log4net: Converter [literal] Option [_info.log] Format [min=-1,max=2147483647,leftAlign=False]
    log4net: Performing additional conversion of value from [PatternString] to [String]
    log4net: Setting Property [File] to String value [C:\Logs\icomply_(null)_info.log]

我无法看到我做错了什么 - 这或多或少都是我经常做的,尽管这可能是我第一次在ASP.NET Web Forms中配置它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我必须添加

log4net.Config.XmlConfigurator.Configure();

之后开始工作
GlobalContext.Properties["svr"] = MyEnvironment.Server;

线。

谢谢NK; - )