无法更改 Apache Jena 日志记录级别(使用 log4J2)
Posted
技术标签:
【中文标题】无法更改 Apache Jena 日志记录级别(使用 log4J2)【英文标题】:Can't Change Apache Jena Logging Level (using log4J2) 【发布时间】:2018-06-15 21:28:18 【问题描述】:我已将 Apache Jena 库包含到我的 Java 项目中,并且我使用 Apache Log4J2 作为我的记录器。我还包含了 log4j-1.2-api 和 log4j-slf4j-impl 依赖项,用于从 Log4J v1.x 和 SLF4J 进行映射(分别)。 但是,我无法更改 Jena 的日志记录级别! 我尝试在 log4j2.xml (我的项目中使用的)中设置它:
<Logger name="org.apache.jena" level="warn"/>
我什至尝试添加一个 log4j.properties 文件:
log4j.logger.org.apache.jena=WARN
没有成功。 有没有其他人能够解决这个或类似的问题?
【问题讨论】:
您的 xml 配置 sn-p 看起来正确。你能更具体地说明“没有成功”吗?实际发生了什么以及您预期会发生什么?请注意,您可以通过设置log4j2.debug
系统属性对 Log4j2 配置进行故障排除。见logging.apache.org/log4j/2.x/faq.html#troubleshooting
发生的事情是,我仍然看到 Jena 日志处于默认级别(很多 INFO)并使用默认布局。 (我可以尝试设置 log4j2.debug
属性,但我认为 Log4J2 实际上并没有处理这些日志。)
尝试两件事:设置系统属性log4j2.debug
,这会将Log4j2初始化打印到控制台。还要打印系统属性 java.class.path
的值,以验证您没有在类路径上意外使用旧的 Log4j 1.2。
您在 INFO 级别看到了哪些类的输出?库 Apache Jena 不默认使用 Log4j(或其他任何东西),并且很少使用 INFO。这些命令使用 log4j-1 作为它们在 INFO 的输出。
【参考方案1】:
感谢大家的帮助。终于找到问题了。
我正在使用的其他库之一是导入 ch.qos.logback、logback-classic。
我已排除此导入(支持 log4j-slf4j-impl)。一切正常! :)
【讨论】:
以上是关于无法更改 Apache Jena 日志记录级别(使用 log4J2)的主要内容,如果未能解决你的问题,请参考以下文章
centos7web服务器如何设置核心模块core的错误日志为info级别?
是否可以在 Bean 级别控制 cayenne 日志记录 - 以停止记录密码