Java Log4j:如何编写配置?

Java Log4j:如何编写配置?,java,log4j2,Java,Log4j2,我将Log4j2添加到项目中,并添加了config # Root logger option log4j.rootLogger=INFO, 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=

我将Log4j2添加到项目中,并添加了config

# Root logger option
log4j.rootLogger=INFO, 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
然后,我将代码记录如下:

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

...

final static Logger logger = LogManager.getLogger(AbstractEditor.class);

...

logger.info("updated: " + entity);
logger.debug("==> debug");
logger.info("==> info");
logger.warn("==> warn");
logger.error("==> error");
logger.fatal("==> fatal");
logger.trace("==> trace");
据我所知,所有高于调试级别的日志都必须写入控制台和文件。但控制台中只打印了以下内容:

15:08:52.285 [http-nio-8080-exec-1] ERROR ru.example.AbstractEditor - ==> error
15:08:52.292 [http-nio-8080-exec-1] FATAL ru.example.AbstractEditor - ==> fatal
我发现这个字符串与我的配置不匹配。而且他们没有被编入文件。当我添加此配置时,控制台中的所有日志都消失了,不包括这2个字符串


请帮助编写配置以查看控制台和文件上调试级别的所有日志。

您正在以编程方式使用Log4j 2,但使用Log4j 1的配置格式。log4j2忽略您的配置并使用默认值。你有两个选择

  • 将配置转换为使用Log4j 2语法(推荐),或
  • 通过设置系统属性“log4j1.compatibility=true”,启用Log4j 2对Log4j 1配置文件的实验支持。此支持是在2.13.0版中添加的,因此您必须使用该版本。属性文件还必须命名为log4j.properties,而不是log4j2.properties

  • 您正在以编程方式使用Log4j 2,但使用Log4j 1的配置格式。log4j2忽略您的配置并使用默认值。你有两个选择

  • 将配置转换为使用Log4j 2语法(推荐),或
  • 通过设置系统属性“log4j1.compatibility=true”,启用Log4j 2对Log4j 1配置文件的实验支持。此支持是在2.13.0版中添加的,因此您必须使用该版本。属性文件还必须命名为log4j.properties,而不是log4j2.properties

  • 重复的?实际上,这不是重复的,因为这个问题使用Log4j 2。重复的?实际上,这不是重复的,因为这个问题使用Log4j 2。