Mar*_*ney 5 java logging tomcat slf4j
我有一个运行基于 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
Run Code Online (Sandbox Code Playgroud)
这正确地记录了我自己的代码,但似乎对我正在使用的各种库中的记录没有任何影响。例如,org.apache.*即使我添加log4j.logger.org.apache=WARN到我的 log4j.properties 中,我仍然会在 Tomcat 启动期间从Eclipse 控制台错误流中获取 INFO 日志。
我正在使用slf4j-api和slf4j-log4jjars,通过 Maven 获得。
如何在自己的代码之外控制日志记录级别和目标?
一些库使用其他日志框架,例如java.util.logging.
您可以使用SLF4J重定向日志记录,请参阅SLF4J - 桥接旧版 API:
雅加达共享日志记录的重定向:
为了方便从 JCL 迁移到 SLF4J,SLF4J 发行版包含了 jar 文件
jcl-over-slf4j.jar。此 jar 文件旨在作为 JCL 版本 1.1.1 的直接替代品。它实现了 JCL 的公共 API,但在底层使用了 SLF4J,因此名称为“JCL over SLF4J”。
重定向java.util.Logging(SLF4J API):
通过logging.properties配置文件安装:
// 将 SLF4JBridgeHandler 注册为 jul 根记录器的处理程序
处理程序 = org.slf4j.bridge.SLF4JBridgeHandler
有关配置java.util.Logging请参阅JUL API。
有些库(例如 Apache CXF)支持多个日志记录框架,请参阅Apache CXF - 调试和日志记录。
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |