java - 基于 log4j 级别的日志记录

标签 java logging log4j

我正在尝试将我的应用程序中发生的一切记录到两个日志中:一个日志将包含所有内容,另一个将仅包含 INFO 及以上(因此,一个文件将包含所有内容,而另一个将仅包含信息、警告、错误等级别)。第一个文件供开发人员使用,第二个文件供测试人员使用。

任何人都可以在这里指出正确的方向吗?我读了这篇关于自定义过滤器的文章:

http://veerasundar.com/blog/2011/05/log4j-tutorial-writing-different-log-levels-in-different-log-files/

但我在想,既然我想要的只是从一个文件中排除一个级别,那么可能有一种更简单、 native 的方法可以做到这一点。有人可以给我一个例子,说明我将如何在属性文件中执行此操作吗?

谢谢。

最佳答案

将您的记录器指向两个附加程序。一个阈值设置为信息。

Good Example

从示例中复制...

 log4j.rootLogger=DEBUG, CA, FA

 # Console Appender
 log4j.appender.CA=org.apache.log4j.ConsoleAppender
 log4j.appender.CA.layout=org.apache.log4j.PatternLayout
 log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    
 # File Appender
 log4j.appender.FA=org.apache.log4j.FileAppender
 log4j.appender.FA.File=sample.log
 log4j.appender.FA.layout=org.apache.log4j.PatternLayout
 log4j.appender.FA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

 # Set the logger level of File Appender to WARN
 log4j.appender.FA.Threshold = WARN

关于java - 基于 log4j 级别的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9910778/

相关文章:

java - 在应用程序层之间传输 Java 异常堆栈跟踪

python - 如何通过 tcp 接收带有线路流的 syslog-ng 日志?

JSF2 日志与 tomcat

java - org.apache.log4j.Logger 无法解析尽管 Maven 依赖项

java - 在 JAVA 中通过 API 更改 Jenkins 构建名称和描述

java - 在 MySQL 中添加日期(使用 JCalendar)时出现数据截断错误

java - 在jsp scriptlet中获取javascript变量值

Java 日志记录 - 有没有办法控制将哪些数据插入到 xml 中?

tomcat - 未加载应用程序 log4j.properties

java - 为什么 log4j 会记录到控制台?