我希望所有 error 日志都打到 error.log 文件里,所以设定最顶层的 logger(com.baidu)日志级别为 error,子包(比如 com.baidu.trace )级别为 info,但是子包的 error 日志始终无法打到 error.log 里,而是和 info 日志一起打到子包配置的文件里。
我希望所有 error 日志都打到 error.log 文件里,所以设定最顶层的 logger(com.baidu)日志级别为 error,子包(比如 com.baidu.trace )级别为 info,但是子包的 error 日志始终无法打到 error.log 里,而是和 info 日志一起打到子包配置的文件里。
1
vjnjc May 14, 2018 via Android
我也想知道😂
|
2
zhantss May 14, 2018
log4j 实现每一个等级的 Threshold 是按照优先级的包含关系确定写入文件的,比如 info 包含了 error 等
你需要控制写入文件的话需要自己实现一个 Appender,主要重写的方法是 isAsSevereAsThreshold,改成相同而不是 equals,默认返回还是 true 具体看这两段代码 https://github.com/apache/log4j/blob/trunk/src/main/java/org/apache/log4j/AppenderSkeleton.java#L218 https://github.com/apache/log4j/blob/trunk/src/main/java/org/apache/log4j/Priority.java#L123 |