如何停止log4j的控制台输出?当前代码将输出到文件和控制台

时间:2013-07-24 02:25:38

标签: java logging log4j

在我的项目中,我打算拥有多个日志文件,因此我使用的是类别。但不知怎的,我也得到输出到控制台。我尝试了很多选择但没有成功。 我想停止输出到控制台。文件输出不应受到影响。

这是配置。

#********************Common Configuration**********************
LOG_PATH=./logs
LOG_LEVEL_COMMON=DEBUG

#********************Logging Configuration**********************


#Configure logging level for ENGINE_CLIENT
log4j.category.ENGINE_CLIENT_LOG=${LOG_LEVEL_COMMON},ENGINE_CLIENT
log4j.appender.ENGINE_CLIENT=org.apache.log4j.FileAppender
log4j.appender.ENGINE_CLIENT.File=${LOG_PATH}/EngineClient.log
log4j.appender.ENGINE_CLIENT.layout=org.apache.log4j.PatternLayout
log4j.appender.ENGINE_CLIENT.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p %C{8} [%t] - %m%n

这是Java代码......

final static Logger logger = Logger.getLogger("ENGINE_CLIENT");
PropertyConfigurator.configure("./config/default.properties");

2 个答案:

答案 0 :(得分:0)

我已将您的代码复制粘贴到我的本地计算机上。你的log4j.properties,但我似乎无法重现这个问题。它只记录到文件而不是控制台。

只是偶然,但您是否尝试在additivity内设置类别的log4j.properties。像这样:

 log4j.additivity.ENGINE_CLIENT_LOG=false

此处有更多信息:
http://logging.apache.org/log4j/1.2/manual.html#Appenders_and_Layouts

答案 1 :(得分:0)

尝试使用:log4j.rootLogger=${LOG_LEVEL_COMMON}, ENGINE_CLIENT

设置根记录器