我的解决方案中有2个项目,都是类库类型。
我决定使用log4net为两个项目添加日志记录。我正在使用的log4net配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString"
value="c:/AutomationLog/Automation_%date{dd.MM.yy_HH.mm.ss}.log" />
<appendToFile value="false" />
<rollingStyle value="Once" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date{HH:mm:ss,fff} %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
</root>
<logger name="root">
<level value="OFF" />
</logger>
</log4net>
我希望每次运行时创建一个文件(每个夹具套件运行一个)。但是创建了两个文件:
Automation_27.01.13_07.33.53.log
Automation_27.01.13_07.33.53.log.1
经过调查,我发现每次在同一个地方将日志分配到第二个文件中 - 当调用包含来自White的类型的操作时。看起来好像是由于White也在内部使用log4net。
所以,我猜,情况是这样的:
Log.Info("...")
知道如何在不修改White(第三方dll)代码的情况下防止日志分裂?
答案 0 :(得分:0)
我通过重命名配置文件解决了这个问题,白色查找了log4net.config名称。但我仍然没有得到答案 - 如何强制log4net只被初始化一次,并跳过未来的尝试。