让log4j登录控制台和文件

时间:2016-10-06 15:02:37

标签: java logging log4j

我想将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文件中读取属性的任何建议?

1 个答案:

答案 0 :(得分:0)

不要试图打败我,我正在逃跑......: - )

您在ERROR和档案之间错过了逗号

log4j.rootLogger=DEBUG,WARN,INFO,ERROR file, stdout