【发布时间】:2012-11-06 17:39:00
【问题描述】:
最近我遇到了一个应用程序日志级别动态变化的情况。应用程序管理员可以从前端将其设置为 INFO/DEBUG/WARN。根据选择的日志级别,必须更改应用程序日志记录。
我确信记录器支持这种情况,但不知道如何实现这一点。如果你们对此有任何想法/想法,请告诉我。
提前感谢您的帮助。
-纳伦德拉
【问题讨论】:
-
您不能使用 SLF4J API 执行此操作;您必须使用自己的 API 配置日志记录后端(在您的情况下为 log4j)。
-
您想更改某些消息发送到日志框架的级别,还是用于过滤写入日志的消息的级别?
-
你能告诉我两者的区别吗?
-
实际上有三种改变日志级别的方法。 (1) 更改 appender 输出的所有日志记录的级别,(2) 更改特定类记录器的日志记录输出级别,以及 (3) 更改代码中各个位置的单个日志记录语句的级别。使用
SLF4j你不能做#3,但如果你使用logger.log("stuff", LEVEL);你可以在log4j 中,因为LEVEL可能来自一个变量。后者仅在非常特定的情况下才需要。所以很可能 Narendra 意味着改变每个 appender 的日志级别。