我遇到问题,即使我指定了属性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());
但仍未使用
答案 0 :(得分:0)
您正在混合记录器和追加器。可以在记录器上配置可加性,并且记录器将<severity level>
和<appender name>
作为参数。仔细查看我如何重命名您的WorkOrder *名称(* = {Appender,Logger})。
因此,
的组合log4j.logger.WorkOrderLogger=INFO, WorkOrderAppender
log4j.additivity.WorkOrderLogger=false
和
Logger logger = Logger.getLogger("WorkOrderLogger");
应该有用。