gpt4 book ai didi

java - Log4j : how to compose config?

转载 作者:行者123 更新时间:2023-11-30 05:20:25 26 4
gpt4 key购买 nike

我将Log4j2添加到项目中,并添加了配置。

# 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");

据我了解,所有级别高于DEBUG的日志都必须写入控制台和文件。但只有这个被打印到控制台:

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 个字符串。

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

最佳答案

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

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

关于java - Log4j : how to compose config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59681652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com