如何在运行时访问已配置的 Log4J appender?

新手上路,请多包涵

我想在启动时配置一个附加程序,然后根据需要从各种记录器中动态添加和删除它。我更愿意让 log4j 自己配置这个附加程序,并在需要时获取对它的引用。如果那不可能,我将不得不自己实例化 appender 并保留它。

原文由 Seth Weiner 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 504
1 个回答

Appenders 通常被添加到根记录器中。这是一些伪代码

// get the root logger and remove the appender we want
Logger logger = Logger.getRootLogger();
Appender appender = logger.getAppender("foo");
logger.removeAppender(appender)

// when we want to add it back...
logger.addAppender(appender);

我很确定您也可以在除根记录器之外的其他记录器上执行此操作,尽管我从未尝试过。

原文由 Alan Krueger 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题