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

Why is the message is logged only, not my full pattern?

我使用的是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

我的测试class:

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

您在 lOGFILE 中有小写 l 拼写错误。

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