我正在设置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级别。这工作正常,但似乎需要做很多额外的工作,因为所有这些appender仅在阈值(调试或警告等)和文件名(debug.log或warn.log等)上有所不同
有没有更好的方法来实现我的目标?也许就像首先声明“基础appenders”一样。
(另请注意 - 如果在log4net中不可能,但在NLog中可能,我也很感激知道)
谢谢!
答案 0 :(得分: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>