为什么只记录消息,而不是我的完整模式?

时间:2015-08-30 01:36:04

标签: java logging log4j

我正在使用log4j 1.2.1.7,我需要创建一个每次运行时创建记录的文件

这是我的log4j.properties:

log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.target = System.out
log4j.appender.console.layout = org.apache.log4j.EnhancedPatternLayout
log4j.appender.console.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %-5p ] %l - %m%n


log4j.appender.LOGFILE=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.LOGFILE.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.LOGFILE.RollingPolicy.FileNamePattern=application_%d{HH-mm-ss}.log
log4j.appender.LOGFILE.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.lOGFILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %-5p ] %l - %m%n

log4j.rootLogger = TRACE, console,LOGFILE

我的测试班:

public class Testlog {

    public static Logger log =  Logger.getLogger(Testlog.class);
    public static void main(String[] args) {

        log.trace("mensaje de trace");
        log.debug("mensaje de debug");
        log.info("mensaje de info");
        say("mensaje de metodo");
        log.warn("mensaje de warn");
        log.error("mensaje de error");
        log.fatal("mensaje de fatal");
    }
    public static void say(String a){
         log.info(a);
    }
}

控制台输出:

2015-08-29 20:09:00 [ TRACE ] test.Testlog.main(Testlog.java:13) - mensaje de trace

2015-08-29 20:09:00 [ DEBUG ] test.Testlog.main(Testlog.java:14) - mensaje de debug

2015-08-29 20:09:00 [ INFO  ] test.Testlog.main(Testlog.java:15) - mensaje de info
2015-08-29 20:09:00 [ INFO  ] test.Testlog.ad(Testlog.java:22) - mensaje de metodo
2015-08-29 20:09:00 [ WARN  ] test.Testlog.main(Testlog.java:17) - mensaje de warn

2015-08-29 20:09:00 [ ERROR ] test.Testlog.main(Testlog.java:18) - mensaje de error

2015-08-29 20:09:00 [ FATAL ] test.Testlog.main(Testlog.java:19) - mensaje de fatal

但是,在文件中,我只收到消息:

mensaje de trace
mensaje de debug
mensaje de info
mensaje de metodo
mensaje de warn
mensaje de error
mensaje de fatal

1 个答案:

答案 0 :(得分:1)

l中有一个小写的lOGFILE拼写错误。

log4j.appender.lOGFILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %-5p ] %l - %m%n

需要:

log4j.appender.LOGFILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %-5p ] %l - %m%n