有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java让log4j同时登录控制台和文件

我想将log4j打印到控制台和日志文件,我有以下log4j。属性文件:

 # 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

我以简单的方式使用记录器:

final static Logger logger = Logger.getLogger(MyClass.class);
logger.warn("my message");

日志记录在控制台上工作得非常好,但在文件中没有,实际上我相信cfg文件根本不可读,请注意log4j。poperties文件位于项目的根目录中。 在各种教程中,我读到了log4j是必需的。属性位于类路径中,不需要从java代码手动注册它。 关于如何让我的记录器读取cfg文件中的属性,有什么建议吗


共 (1) 个答案

  1. # 1 楼答案

    别想打我,我要逃跑了…:-)

    在错误和文件之间遗漏了一个逗号

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