【问题标题】:Configuring log4net to write to different files based on log level配置 log4net 以根据日志级别写入不同的文件
【发布时间】:2011-06-19 06:30:35
【问题描述】:

我正在设置 log4net,想在“debug.log”中写入调试消息,在“info.log”中写入信息消息等等。

为此,我使用了几个appender,比如:

<appender name="DebugLogger" type="log4net.Appender.RollingFileAppender">
   <file value="..\Logs\Debug.log" />
   <threshold value="DEBUG" />
   <appendToFile value="true" />
   <rollingStyle value="Size" />
   <maxSizeRollBackups value="10" />
   <maximumFileSize value="1MB" />
   <staticLogFileName value="true" />
   <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] -    %message%newline" />
   </layout>

和类似的 INFO、WARN 和 ERROR 级别。这工作正常,但似乎需要做很多额外的工作,因为所有这些附加程序仅在阈值(调试或警告等)和文件名(debug.log 或 warn.log 等)上有所不同

有没有更好的方法来实现我的目标?可能是先声明“基本附加程序”之类的。

(在单独的说明中 - 如果这在 log4net 中不可能,但在 NLog 中可能,我也很高兴知道)

谢谢!

【问题讨论】:

    标签: logging log4net nlog log4net-configuration


    【解决方案1】:

    好的,这在 log4net 中是不可能的 - 只是想结束这个问题。

    我检查了 NLog,显然那里很容易(请参阅配置中的 $level 变量):

    <?xml version="1.0" encoding="utf-8" ?>
    <nlog>
       <variable name="logDirectory" value="${basedir}\..\Logs"/>
       <targets>
           <target name="file" type="File" fileName="${logDirectory}\${level}.log" />
       </targets>
       <rules>
           <logger name="*" minlevel="Debug" writeTo="file" />
       </rules>
    </nlog>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2012-09-12
      • 1970-01-01
      相关资源
      最近更新 更多