我尝试为不同的输出层配置log4j.properties。
例如:
- 仅在控制台显示 WARN 级别。
- 将 INFO 级别写入日志文件。
我试图找到正确的解决方案。我发现当你写一些关于你想要的包的信息级别时:
log4j.logger.your.package.name=DEBUG
它将调试记录器打印到控制台和文件。
这里是log4j.properties
的内容:
# Root logger option
log4j.rootLogger=WARN, stdout, file
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=logs/myapp_test.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
log4j.logger.com.my.lab=DEBUG
- 如何为文件和控制台配置不同的输出层?
最佳答案
您可以为文件和控制台 Appender 设置不同的日志记录级别:
# Root logger option
log4j.rootLogger=INFO, stdout, file
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=logs/myapp_test.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
# Set the logger level of Console Appender to WARN
log4j.appender.stdout.Threshold = WARN
另请参阅this链接
关于java - 如何为不同的appender配置log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421124/