C# 如何通过记录器改变appender的行为
我有一个appender,它调用存储过程来编写日志记录。它看起来是这样的(为简洁起见进行了修剪):C# 如何通过记录器改变appender的行为,c#,log4net,log4net-configuration,C#,Log4net,Log4net Configuration,我有一个appender,它调用存储过程来编写日志记录。它看起来是这样的(为简洁起见进行了修剪): 注意消息参数的大小字段设置为40000 我有一个记录器,但我需要的消息长度更长。如何更改特定记录器的此设置。我尝试克隆LogAppender并更改大小值,如下所示: <log4net> <root> <level value="WARN" /> <appender-ref ref="LogAppender" /> <
注意消息参数的大小字段设置为40000
我有一个记录器,但我需要的消息长度更长。如何更改特定记录器的此设置。我尝试克隆LogAppender并更改大小值,如下所示:
<log4net>
<root>
<level value="WARN" />
<appender-ref ref="LogAppender" />
</root>
<logger name="SpecialLogger">
<level value="INFO" />
<appender-ref ref="SpecialLogAppender" />
</logger>
<appender name="LogAppender" type="LoggerAssembly.Appender, LoggerAssembly">
<bufferSize value="1" />
<reconnectonerror value="True" />
<parameter>
<parameterName value="@EntryDate" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="40000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<appender name="SpecialLogAppender" type="LoggerAssembly.Appender, LoggerAssembly">
<bufferSize value="1" />
<reconnectonerror value="True" />
<parameter>
<parameterName value="@EntryDate" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="400000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
</log4net>
但这会导致来自SpecialLogger的消息被记录两次,一次由LogAppender记录,一次由SpecialLogAppender记录。有什么想法吗?您需要在特殊记录器定义中添加
additivity=“false”
:
<logger name="SpecialLogger" additivity="false">
<level value="INFO" />
<appender-ref ref="SpecialLogAppender" />
</logger>
您需要将合适的
元素添加到log4net appender中。看
<appender name="SpecialAppender" type="log4net.Appender.FileAppender">
<file value="log.txt" />
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="your-logger-name-here">
<acceptOnMatch="true"
</filter>
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<appender name="DefaultAppender" type="log4net.Appender.FileAppender">
<file value="log.txt" />
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="your-logger-name-here">
<acceptOnMatch="false"
</filter>
<layout type="log4net.Layout.SimpleLayout" />
</appender>
可加性是这个属性的一个可怕的名称。我不觉得难过,我没看见。谢谢我希望我能把两个答案标为正确。making3是最简单的,它解决了我的问题,但是如果我有更多这样的改变,你的方法会更灵活。谢谢
<appender name="SpecialAppender" type="log4net.Appender.FileAppender">
<file value="log.txt" />
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="your-logger-name-here">
<acceptOnMatch="true"
</filter>
<layout type="log4net.Layout.SimpleLayout" />
</appender>
<appender name="DefaultAppender" type="log4net.Appender.FileAppender">
<file value="log.txt" />
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="your-logger-name-here">
<acceptOnMatch="false"
</filter>
<layout type="log4net.Layout.SimpleLayout" />
</appender>