我想将log4j打印到控制台和日志文件,我有以下log4j.properties文件:
# Root logger option
log4j.rootLogger=DEBUG,WARN,INFO,ERROR file, stdout
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\jeff\\logfile.txt
log4j.appender.file.MaxFileSize=20MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Redirect log messages to console
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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我以简单的方式使用Logger:
final static Logger logger = Logger.getLogger(MyClass.class);
logger.warn("my message");
日志记录在控制台上完全正常,但在文件中没有,实际上我认为cfg文件根本没有读取,请注意log4j.poperties文件位于项目的根目录中。 在我阅读的各种教程中,log4j.properties在类路径中是必要的,不需要从java代码手动注册它。 关于如何告诉我的记录器从cfg文件中读取属性的任何建议?
答案 0 :(得分:0)
不要试图打败我,我正在逃跑......: - )
您在ERROR和档案之间错过了逗号。
log4j.rootLogger=DEBUG,WARN,INFO,ERROR file, stdout