根据情况将log4net登录到不同的appender

我正在使用log4net并且在一个类中需要记录到RollingFile appender,但是在另一个类中,我希望记录到事件日志+滚动文件+控制台appender。

什么是最佳做法? 我能看到一些示例代码吗?

为了使事情变得更加困难,我使用Castle Windsor Logging Facility和Log4net来解析我的Logger实例。

如果它有帮助,我在想下面的内容,但不知道这是否是最佳实践,或者如何基于’name’激活特定的记录器,仍然使用来自windsor的当前记录器实例:

log4net.config:

...          ... 

城堡windsor容器建造者类:

 container.AddFacility("logging.facility", new LoggingFacility(LoggerImplementation.Log4net, "log4net.config")); 

要记录的类:

 private ILogger Logger; public Test(ILogger logger) { Logger.Info("Can I log under event log only?"); Logger.Info("Now can I log under both?"); } 

多谢你们。

您可以通过将filter应用于appender来完成此操作。 仅当日志事件通过filter时,该appender才会记录该事件。

此filter配置将仅记录来自名为“MyLogger”的记录器的事件:

      

…这个将匹配日志消息与某些包含的文本:

     

filter可以进行一些配置。 有关更多详细信息,请参阅手册的log4net SDK或filter部分。