Log4j的PropertyConfigurator已不存在?

2022-04-12 00:00:00 logging java log4j log4j2

我只在控制台上得到这个:

13:08:18.379[Main]错误日志4.prueba-这是错误

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

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

project文件夹/src/log4/prueba.java

项目文件夹/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

解决方案

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

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

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

相关文章