【问题标题】:How to set log4net LockingModel programmatically after loading with XmlConfigurator?使用 XmlConfigurator 加载后如何以编程方式设置 log4net LockingModel?
【发布时间】:2013-10-09 06:02:27
【问题描述】:

我有这个 XML log4net 配置:

  <log4net>
    <appender name="myAppender" type="log4net.Appender.RollingFileAppender">
      <file value="mylog.txt" />
    </appender>
    <root>
      <level value="DEBUG" />
        <appender-ref ref="myAppender" />
    </root>
  </log4net>

我使用下面的 C# 行加载此配置,它运行良好:

log4net.Config.XmlConfigurator.Configure(path);

问题:现在我想将lockingModel 设置为MinimalLock以编程方式,而不是 XML。
怎么做?

这相当于在 XML 配置中添加 &lt;lockingModel type="log4net.Appender.FileAppender+MinimalLock" /&gt;

【问题讨论】:

    标签: c# log4net xmlconfigurator


    【解决方案1】:
        <appender name="text" type="log4net.Appender.RollingFileAppender,log4net">
            <param name="File" value="c:\system-name.log"/>
            <param name="AppendToFile" value="true"/>
            <rollingStyle value="Date"/>
            <staticLogFileName value="true"/>
            <datePattern value="'.'yyyy-MM-dd"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %5p %c{1}:%L - %m%n"/>
            </layout>
    enter code here
            <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
        </appender>
    

    【讨论】:

    • OP 已询问如何以编程方式执行此操作,而不是通过配置
    【解决方案2】:
    // assumes there are not multiple file appenders defined
    var appender = log4net.LogManager.GetRepository()
                                     .GetAppenders()
                                     .OfType<FileAppender>()
                                     .SingleOrDefault();
    
    if (appender != null)
    {
         appender.LockingModel = new FileAppender.MinimalLock();
    }
    

    【讨论】:

    • 所以我想我应该在我的log4net.Config.XmlConfigurator.Configure(path); 行之后插入这段代码?
    • 是的,需要配置加载后运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2013-09-16
    • 2011-08-31
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多