我目前正在调整一个相对较大的项目的log4j配置。目前,我尚未为可能创建日志条目的所有位置配置日志级别。
我想让log4j有一些回退appender来记录所有没有配置其他appender的消息。因此,如果我有一条日志消息:
登录:a.b.c.d:WARN
并将appender配置为使用级别INFO记录包a.b.c,然后将输出记录到该appender。
但是,如果我没有配置appender来处理a.b.c.d,那么应该使用回退。
如果我将a.b.c Appender配置为FATAL级别,那么根本不需要记录任何内容,因为我故意配置log4j以保留这些消息。
我希望我能够解释我想做什么: - )
有什么建议吗?
克里斯
答案 0 :(得分:1)
如果您不想在根记录器中获取所有内容,可以设置
additivity = "false"
在其他记录器上。然后日志不会传播。
答案 1 :(得分:0)
我认为@Keppil似乎混淆了一些东西。
Additivity是在Logger上设置的,它控制父记录器(包括appender)的设置如何传播到记录器。
所以,在OP的情况下,你可能会这样做:
Root Logger -> Appender1
Logger a.b.c -> additivity = false, Appender2
通过这样做,a.b.c(及其所有子代)将其日志发送到Appender2,而所有其他记录器将发送到Appender1。