gpt4 book ai didi

java - 是否可以在 log4j 1.x 中指定基于包的通配符?

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:36 24 4
gpt4 key购买 nike

我在 log4jproperties 文件中尝试了下面的包附加程序,但它不起作用。请帮我解决这个问题。

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

最佳答案

log4j (1.x) 中只有前缀继承的概念,因此您无法执行此操作。

引用https://logging.apache.org/log4j/1.2/manual.html

您需要将任何 *.service leaf 包放入您的配置文件中。

或者,您可以使用不同的记录器名称,也许是一些与命名方案相反的名称,或者可能是更具象征意义的名称(我的意思是,如果您无论如何需要专用日志记录,这可能是有效的)。或者,如果编码开销可以接受,则使用辅助记录器。

想想:

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

编辑:如果您能够修改类路径并将 log4j-extras 添加到其中,您可能会从那里获得一些有关过滤器的帮助:https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/filter/package-summary.html

但是,AFAICS、ExpressionFilter 对 Message 进行过滤,LoggerMatchFilter 对精确 记录器名称进行过滤 - 因此这些也可能不是解决方案。

关于java - 是否可以在 log4j 1.x 中指定基于包的通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40651736/

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