我有一个运行基于 Spring 的 servlet 的 Tomcat 服务器。
我已经设置了[project root]/src/log4j.properties
文件如下:
# Root logger option
log4j.rootLogger=WARN, stdout
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{HH:mm:ss} %m [%c{3}:%L]%n
log4j.logger.com.martincarney.bugTracker=DEBUG
log4j.logger.com.martincarney.bugTracker.controller=ERROR
这可以正确地记录我自己的代码,但似乎对我正在使用的各种库中的日志记录没有任何影响。例如,我仍然从以下位置获取 INFO 日志org.apache.*
Tomcat 启动期间的 Eclipse 控制台错误流,即使我添加log4j.logger.org.apache=WARN
到我的 log4j.properties。
我在用着slf4j-api
and slf4j-log4j
jars,通过Maven获取。
如何在我自己的代码之外控制日志记录级别和目标?
有些库使用其他日志框架,例如java.util.logging
.
您可以使用重定向日志记录SLF4J http://www.slf4j.org/, see SLF4J - 桥接旧版 API http://www.slf4j.org/legacy.html:
雅加达共享日志记录的重定向:
为了方便从 JCL 迁移到 SLF4J,SLF4J 发行版包含 jar 文件jcl-over-slf4j.jar
。此 jar 文件旨在作为 JCL 版本 1.1.1 的直接替代品。它实现了 JCL 的公共 API,但在底层使用了 SLF4J,因此名称为“JCL over SLF4J”。
重定向至java.util.Logging
(SLF4J API http://www.slf4j.org/api/org/slf4j/bridge/SLF4JBridgeHandler.html):
通过logging.properties配置文件安装:
// 将 SLF4JBridgeHandler 注册为 j.u.l. 的处理程序。根记录器
处理程序 = org.slf4j.bridge.SLF4JBridgeHandler
用于配置java.util.Logging
see JUL API https://docs.oracle.com/javase/7/docs/api/java/util/logging/LogManager.html.
有些库(例如 Apache CXF)支持多个日志框架,请参阅Apache CXF - 调试和日志记录 http://cxf.apache.org/docs/debugging-and-logging.html#DebuggingandLogging-UsingLog4jInsteadofjava.util.logging.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)