我有以下log4net配置
<log4net debug="true">
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\\CurrentLog.txt"/>
<appendToFile value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
<root>
<priority value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
是否可以将来自不同程序集的事件记录在不同的文件中?例如,来自
的消息Castle.Facilities.NhibernateIntegration
如果不是这样,是否有更好的方法来过滤事件? 我不想将流限制为只有错误。
答案 0 :(得分:1)
可以按名称配置记录器。如果您正在执行idiomatic log4net做法,则您的记录器将按其完整Namespace.TypeName
命名。您可以通过两种方式将追加器分配给记录器。
首先是直接嵌入特殊的appender
<logger name="Castle.Facilities.NhibernateIntegration">
<level value="INFO" />
<appender name="CastleNhIntegrationAppender" type="...">
<!-- put the full appender configuration here -->
</appender>
</logger>
或者定义appender并在记录器中引用它
<appender name="CastleNhIntegrationAppender" type="...">
<!-- put the full appender configuration here -->
</appender>
<logger name="Castle.Facilities.NhibernateIntegration">
<level value="INFO" />
<appender-ref ref="CastleNhIntegrationAppender" />
</logger>