在Log4cxx中,我知道可以将filter添加到appender中。但是如果我只想将filter添加到特定的logger中呢?
LoggerPtr logger = Logger::getLogger("loggerName");
AppenderPtr appender = logger->getAppender("appenderName");
appender->addFilter(...);
通过查看documentation,我无法找到向特定记录器添加过滤器的方法,我能想到的唯一方法是为每个希望应用过滤器的特定记录器创建一个特定的appender,并为此appender应用过滤器。还有其他方法吗?
如果可能的话,我正在寻找一种编程的方法。
1条答案
按热度按时间2fjabf4q1#
如果你想排除/包含一个特定的记录器名,你可以使用log 4cxx包含的LoggerMatchFilter。
或者,通过提供自己的自定义过滤器(实现
decide(const LoggingEventPtr &event)
),您可以从LoggingEvent访问记录器名称。例如: