2016-11-17 67 views
1

我在log4jproperties文件中的包appender下面试过,但它没有工作。 请帮我解决这个问题。是否可以在log4j 1.x中指定基于包的通配符?

log4j.logger.com.ewp.*.service=ERROR,SERVICELOG 

#SERVICELOG appender 
log4j.appender.SERVICELOG=org.apache.log4j.RollingFileAppender 
log4j.appender.SERVICELOG.File=C:/Log/service_log.log 
log4j.appender.SERVICELOG.layout=org.apache.log4j.PatternLayout 

回答

0

这里只有前缀继承在log4j的(1.x中)的一个概念,所以你将不能够做到这一点。

参考https://logging.apache.org/log4j/1.2/manual.html

你需要把任何*。服务叶包放到你的配置文件。或者,你可以使用不同的记录器名称,也许有些与命名方案相反,或者可能更具象征意义(我的意思是,如果你无论如何需要专门的日志记录,这可能是有效的)。或者如果编码开销可以接受,则使用辅助记录器。想想的

Logger log = Logger.getLogger("any.string.prefix.here." + "some.suffix"); 

编辑:如果你能修改后的classpath,把log4j的,群众演员,你可能会得到一些帮助过滤器从那里:https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/filter/package-summary.html

然而AFAICS ,ExpressionFilter过滤器上的消息和LoggerMatchFilter过滤器确切记录器名称 - 所以这些也可能不是解决方案。

相关问题