使用具有不相等条件Log4net的记录器筛选器

使用具有不相等条件Log4net的记录器筛选器,log4net,Log4net,我在我的c#应用程序中使用log4net,我有不同的记录器,在我的单个日志文件中插入文本行 但是现在我想添加一个新的记录器,它不应该在同一个文件中发布日志条目,而应该在不同的文件中登录,因此我配置了一个新的fileAppender,在完成在网络上找到的任何操作后,我能够为我的新记录器创建一个不同的文件,但它在第一个日志文件中也会回显相同的值 所以,如果有人知道日志过滤器的使用,我可以在之前配置的appender中添加“Logger New Logger”匹配 问候 Mubashar假设您有这样的

我在我的c#应用程序中使用log4net,我有不同的记录器,在我的单个日志文件中插入文本行

但是现在我想添加一个新的记录器,它不应该在同一个文件中发布日志条目,而应该在不同的文件中登录,因此我配置了一个新的fileAppender,在完成在网络上找到的任何操作后,我能够为我的新记录器创建一个不同的文件,但它在第一个日志文件中也会回显相同的值

所以,如果有人知道日志过滤器的使用,我可以在之前配置的appender中添加“Logger New Logger”匹配

问候 Mubashar

假设您有这样的“特殊”记录器:

ILog logger1 = LogManager.GetLogger("namespace.special_class");
然后您可以按如下方式配置log4net:

<logger name="namespace.special_class" additivity="false">
   <appender-ref ref="RollingFileAppender4SpecialMessages" />
</logger>

<root>
   <level value="ALL" />
   <appender-ref ref="StandardRollingFileAppender" />
</root>


这样,您的特殊类将使用自己的文件附加器。如果您需要在普通日志文件中使用此类的日志消息,那么您需要删除“additivity”属性。

hmm Root Logger我不知道这个事实,我从来没有想过在config中有一个记录器名称。实际上,我有许多不同的类,我使用的每个类都是ILog Logger=LogManager.GetLogger(typeof(myClass))这就是为什么我在寻找条件不相等的LoggerFilter。那么有没有办法做到这一点?无论如何,谢谢你的回答。这意味着你在每堂课上都有一个记录器,这当然是好的。但是,您如何决定第二个文件的内容呢?您是否有其他具有不同名称的记录器,或者您希望在第二个文件中包含来自某个“名称空间”的消息?是的,每个类都有不同的记录器,并且有一条硬线,即某个特定的类记录器应写入第二个文件,所有其他类记录器应转到第一个文件。这就是为什么我要寻找不相等匹配:(我不知道加法设置,但它正是我要寻找的。谢谢!