Log4j的PropertyConfigurator不再存在?

时间:2018-05-09 14:13:39

标签: java logging log4j log4j2

我只能在控制台上看到这个:

  

13:08:18.379 [main] ERROR log4.prueba - 这是错误

     

13:08:18.381 [main]致命log4.prueba - 这是致命的

我没有获得文件或所有其他级别。 我做错了什么? 我的目录如下所示:

  

projectFolder / SRC / LOG4 / prueba.java

     

projectFolder / SRC / log4j.properties

代码:

package log4;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class prueba {

     private static Logger logger = LogManager.getLogger(prueba.class);
     public static void main( String[] args )
     {
          logger.debug("This is Debug");
          logger.info("This is Info");
          logger.warn("This is Warn");
          logger.error("This is Error");
          logger.fatal("This is Fatal");
     }

 }

属性文件如下所示:

# Root logger option
log4j.rootLogger=DEBUG, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\logging.log
log4j.appender.file.MaxFileSize=10MB
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

# Direct log messages to stdout
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

2 个答案:

答案 0 :(得分:0)

Log4j 2还支持属性文件中的配置,但要注意:

  • 该文件需要调用log4j2.properties
  • configuration syntax与Log4j 1.2语法不同(问题中的配置使用旧的Log4j 1.2语法,Log4j 2不会理解这一点)

Log4j 2用户手册主要包含XML示例,因此很多人发现使用XML配置语法更容易。 (同样,配置文件应该命名为log4j2.xml,Log4j 2将忽略log4j.xml。)

答案 1 :(得分:0)

定义log4j属性文件

@ prueba.java

import org.apache.log4j.Logger;

public class prueba {

    private static Logger LOGGER = Logger.getLogger(prueba.class);

    public static void main(String[] args) {
        LOGGER.debug("This is Debug");
        ...
    }
}

@ pom.xml

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>RELEASE</version>
        <scope>compile</scope>
    </dependency>

src/resources/log4j.properties

# Root logger option
log4j.rootLogger=DEBUG, file, stdout
# Direct log messages to stdout
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
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log/log4j-application.log
log4j.appender.file.MaxFileSize=10MB
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

输出到stdoutlog/log4j-application.log文件

2018-05-11 14:29:43 DEBUG prueba:8 - This is Debug
2018-05-11 14:29:43 INFO  prueba:9 - This is Info
2018-05-11 14:29:43 WARN  prueba:10 - This is Warn
2018-05-11 14:29:43 ERROR prueba:11 - This is Error
2018-05-11 14:29:43 FATAL prueba:12 - This is Fatal