2

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

为此,我使用了几个附加程序,例如:

<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>

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

有没有更好的方法来实现我的目标?也许像首先声明“基本附加程序”之类的东西。

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

谢谢!

4

1 回答 1

3

好的,这在 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>
于 2011-02-01T14:20:48.020 回答