禁用输出到log4j.rootLogger

时间:2014-04-03 12:14:29

标签: java log4j

我遇到问题,即使我指定了属性log4j.additivity=false,仍然会在两个日志(根日志和预期日志)中显示日志消息。 但我想只记录预期的日志文件,如何通过属性文件中的配置来实现它。

我不是log4j专家,所以感谢任何帮助。

我的日志文件如下所示

#==============================================
# RIPNET Logger (..//logs everything under the sun)
#==============================================
log4j.rootLogger=INFO, RIPNETappender
log4j.appender.RIPNETappender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RIPNETappender.layout=org.apache.log4j.PatternLayout
log4j.appender.RIPNETappender.layout.ConversionPattern=%d %p [%t:%c] - <%m>%n
log4j.appender.RIPNETappender.File=..//logs//RIPNET.log

#====================================
# WorkOrder Logger
#====================================
log4j.logger.com.reino.ripnet.servlet.alarm=INFO, WorkOrderAppender
log4j.appender.WorkOrderAppender=org.apache.log4j.DailyRollingFileAppender
log4j.additivity.com.reino.ripnet.servlet.alarm=false
log4j.appender.WorkOrderAppender.File=..//logs//WorkOrder.xml.log
log4j.appender.WorkOrderAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.WorkOrderAppender.layout.ConversionPattern=%d %p [%t:%c] - <%m>%n

虽然我设定了值

log4j.additivity.com.reino.ripnet.servlet.alarm=false 

日志消息仍然记录在root日志中 我甚至试过设置

log4j.additivity.WorkOrderAppender=false

在代码中我通过

调用记录器
Logger  logger = Logger.getLogger("WorkOrderAppender");

我也尝试过使用

Logger  logger = Logger.getLogger(getClass());

但仍未使用

1 个答案:

答案 0 :(得分:0)

您正在混合记录器和追加器。可以在记录器上配置可加性,并且记录器将<severity level><appender name>作为参数。仔细查看我如何重命名您的WorkOrder *名称(* = {Appender,Logger})。

因此,

的组合
log4j.logger.WorkOrderLogger=INFO, WorkOrderAppender
log4j.additivity.WorkOrderLogger=false

Logger  logger = Logger.getLogger("WorkOrderLogger");

应该有用。