如果只调用xxxErrorLogger写入一次,这时在Logs\\Debug同时会生成一个空的.txt文件。
希望在调用xxxErrorLogger时,配置文件不要根据xxxDebugLogger生成Debug目录及文件。
log4net部分配置文件:
<logger name="xxxErrorLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="xxxErrorAppender" />
</logger>
<logger name="xxxDebugLogger" additivity="false">
<level value="ALL" />
<appender-ref ref="xxxDebugAppender" />
</logger>
<!--Error自定义日志配置-->
<appender name="xxxErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\\Error\\" />
......
</appender>
<!--Debug自定义日志配置-->
<appender name="xxxDebugAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\Debug\\" />
......
</appender>
运行就会生成,除非改源码,或者所有的日志都记在一个文件,不是有个ALL/*么?
已经测试过,就算把xxxDebugLogger的level修改成Debug,只调用xxxErrorLogger。xxxDebugLogger配置的目录及.TXT文件也会生成。
log4net本身貌似没有配置的地方
http://blog.csdn.net/zuoluo11/article/details/52316387
重写方法,日志释放锁定后,检查文件并删除
using log4net.Appender; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; namespace DebugLog { public class MinimalLockDeleteEmpty : FileAppender.MinimalLock { public override void ReleaseLock() { base.ReleaseLock(); var logFile = new FileInfo(CurrentAppender.File); if (logFile.Exists && logFile.Length <= 0) { logFile.Delete(); } } } }