gpt4 book ai didi

java - 禁用 log4j 日志记录到控制台

转载 作者:行者123 更新时间:2023-12-01 13:32:42 24 4
gpt4 key购买 nike

我有以下 log4j.properties 文件:

# Direct log messages to a log file
log4j.appender.fileerror=org.apache.log4j.RollingFileAppender
log4j.appender.fileerror.File=C\:\\logs_eba\\loging-error.log
log4j.appender.fileerror.MaxFileSize=20MB
log4j.appender.fileerror.MaxBackupIndex=1
log4j.appender.fileerror.layout=org.apache.log4j.PatternLayout
log4j.appender.fileerror.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.fileerror.threshold = WARN

# 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{ABSOLUTE} %5p %c{1}:%L - %m%n

# Root logger option
log4j.rootLogger = WARN, fileerror

但是我的应用程序不断将日志定向到我的控制台,它甚至显示信息级别的日志,即使我定义了 WARN 阈值。

作为引用,这是我获取 Logging 对象的方式:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static final Logger log = LoggerFactory.getLogger(MyClass.class.getSimpleName());
log.warn("My log message");

会不会和我使用slf4j有关?

PS。我使用 Spring + Hibernate 作为我的架构,它们的日志也被重定向到控制台。

最佳答案

Log4J 默认情况下会在类路径中查找 log4j.properties 文件,并会考虑第一个找到的文件。因此,如果您的应用程序依赖于一个库,而该库本身又依赖于 log4j 并且还提供自己的 log4j.properties,那么它就有可能被选中。

因此,我建议您使用

为您的属性指定自定义位置
java -Dlog4j.configuration=customName

或者使用-Dlog4j.debug查找有关log4j配置的有用信息。

关于java - 禁用 log4j 日志记录到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21476851/

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