使用从 maven 开始的 Jetty 网络服务器,其中包括 iBatis、Spring、Jersey,一些这样那样,我得到了多种格式的日志输出。
一些来自maven:
[INFO] [war:war]
[INFO] Exploding webapp...
一些来自 Jetty:
2009-03-25 21:01:27.781::INFO: jetty-6.1.15
2009-03-25 21:01:28.218:/example:INFO: Initializing Spring root WebApplicationContext
一些来自Spring:
INFO ContextLoader - Root WebApplicationContext: initialization started (189)
INFO XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml] (323)
一些来自 Jersey :
Mar 25, 2009 9:01:29 PM com.sun.jersey.spi.spring.container.SpringComponentProviderFactory register
还有一些来 self 的代码:
INFO ExampleApp - [User@14ef239 ...stuff] (69)
我希望他们都使用标准日志记录包(log4j、commons-logging、java-logging...)
最佳答案
这可以使用 logback 库及其桥接器实现。它基本上包括从类路径中删除任何 log4j commons 或类似的 jar,粘贴 log4j 的 logback jar 文件和桥接 jar 等。 Spring、jersey 和 maven 将使用桥接工厂来实例化记录器,而记录器又将使用 logbak 生成统一的日志记录。
检查 http://logback.qos.ch/和 http://www.slf4j.org/legacy.html
关键是将其他日志实用程序与单个全局记录器链接起来的桥梁。
关于java - 如何统一来自 java 堆栈的日志记录格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/684219/