如何配置log4j属性文件以将DEBUG
条消息打印到文件中,只将INFO
条消息打印到控制台?
这是我的属性文件:
# Root logger option
log4j.rootLogger=INFO, stdout
log4j.logger.org.hibernate.SQL=TRACE, stdout
# 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.EnhancedPatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{dd-MM-yyyy HH:mm:ss,SS} %t %c{1.}: %m%n
答案 0 :(得分:3)
您可以使用如下所示的log4j.properties:
# Root logger option
log4j.rootLogger=INFO, stdout, file
log4j.logger.org.hibernate.SQL=TRACE, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout..Threshold=INFO
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{dd-MM-yyyy HH:mm:ss,SS} %t %c{1.}: %m%n
# Direct log messages to file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.File=/var/log/logfile.log
log4j.appender.file.Append=true
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.DatePattern='-'yyyy-MM-dd'.log'
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{ISO8601}] %-5p %x%m%n
通过此属性文件,log4j为每天创建新的日志文件,并使用日期保存预览日志文件。
答案 1 :(得分:2)
使用log4j xml配置的替代方法。因为我更喜欢使用xml for log4j config。也许这可能从某种程度上帮助你。
例如。
<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<appender name="CONSOLE_LOG" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c] %m%n" />
</layout>
</appender>
<appender name="FILE_LOG" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${catalina.home}/logs/debug.log" />
<param name="Threshold" value="DEBUG" />
<param name="maxBackupIndex" value="5" />
<param name="maxFileSize" value="1500MB" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} |%5p| [%c] | %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="CONSOLE_LOG" />
<appender-ref ref="FILE_LOG" />
</root>
</log4j:configuration>
因此,您的Java代码如下:
logger.debug("your debug log message");
logger.info("your info log message");
要使用log4j.properties进行配置,可能会在How can I create 2 separate log files with one log4j config file?
处重复希望这有帮助!