温莎城堡 - log4net - RollingFileAppender - 问题 - 信息在文件中写入两次
windsor castle - log4net - RollingFileAppender - Issue - Information is written twice in the file
问题:记录的所有信息都在文件中写入了两次。
请找到我使用的以下配置:
我只有在引入多个记录器时才能观察到这个问题。
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="MemoryAppender"/>
<appender-ref ref="EventsFileAppender" />
</root>
<logger name="FileLogger">
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="MemoryAppender"/>
</logger>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\log-file.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.LoggerMatchFilter">
<LoggerToMatch value="FileLogger" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
<filter type="log4net.Filter.LoggerMatchFilter">
<LoggerToMatch value="FileLogger" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<logger name="EventsLogger">
<level value="DEBUG" />
<appender-ref ref="EventsFileAppender" />
</logger>
<appender name="EventsFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\ObjectServerEvents\ObjectServerEvents-file.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.LoggerMatchFilter">
<LoggerToMatch value="EventsLogger" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
你能找出其中的错误吗?如何解决?
您添加了两次附加程序:一次添加到根元素,一次添加到每个记录器。
从 根元素或记录器中删除 appender 声明,每个事件将只记录一次。
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="MemoryAppender"/>
<appender-ref ref="EventsFileAppender" />
</root>
<logger name="FileLogger">
<level value="DEBUG" />
</logger> <!-- etc -->
问题:记录的所有信息都在文件中写入了两次。 请找到我使用的以下配置: 我只有在引入多个记录器时才能观察到这个问题。
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="MemoryAppender"/>
<appender-ref ref="EventsFileAppender" />
</root>
<logger name="FileLogger">
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="MemoryAppender"/>
</logger>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\log-file.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.LoggerMatchFilter">
<LoggerToMatch value="FileLogger" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender">
<filter type="log4net.Filter.LoggerMatchFilter">
<LoggerToMatch value="FileLogger" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
<logger name="EventsLogger">
<level value="DEBUG" />
<appender-ref ref="EventsFileAppender" />
</logger>
<appender name="EventsFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\ObjectServerEvents\ObjectServerEvents-file.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.LoggerMatchFilter">
<LoggerToMatch value="EventsLogger" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
你能找出其中的错误吗?如何解决?
您添加了两次附加程序:一次添加到根元素,一次添加到每个记录器。
从 根元素或记录器中删除 appender 声明,每个事件将只记录一次。
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="MemoryAppender"/>
<appender-ref ref="EventsFileAppender" />
</root>
<logger name="FileLogger">
<level value="DEBUG" />
</logger> <!-- etc -->