我正在寻找一种方法来将所有appender连接到一个记录器实例。
我试过了:
Hierarchy hierarchy = LogManager.GetRepository() as Hierarchy;
hierarchy.GetAppenders()
根据文档,它返回当前配置的所有记录器的所有appender。
当我尝试这个时:
LogManager.GetLogger("MyLoggerName").Logger.Repository.GetAppenders();
我得到了相同的结果。
我只想检索附加到一个记录器的附加程序(在这种情况下为“MyLoggerName”)
我哪里错了?
答案 0 :(得分:4)
当您拨打以下代码时
LogManager.GetLogger("MyLoggerName").Logger.Repository.GetAppenders();
您实际上询问与hierarchy.GetAppenders()
完全相同的数据,因为Hierarchy
继承了LoggerRepositorySkeleton
,它实现了ILoggerRepository
,Logger.Repository
返回的类型。< / p>
然而,您可以获得&#34;第一级&#34;的列表通过使用Logger
命名空间中的Hierarchy
类来执行appenders:
var h = LogManager.GetRepository() as Hierarchy;
var l = h.GetLogger("MyLoggerName", h.LoggerFactory);
// do something with the l.Appenders property
您必须处理特殊情况,例如bufefring或从那里过滤appender