java - 如何统一来自 java 堆栈的日志记录格式

标签 java logging formatting

使用从 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/

    相关文章:

    java - 延迟对对象的调用而不强制当前线程 hibernate

    java - 带有 emacs 的 jdb 和 jde(名称未知)

    java - 如何实现/使用 log4j?

    javascript - 如何在javascript中将snakecased hash转换为camelcase

    Java:检查字符串是否可以使用给定的字符集正确编码?

    c# - 基本渲染 3D 透视投影到带摄像头的 2D 屏幕(不带 opengl)

    go - 如何为滚动文件系统日志配置 uber-go/zap 记录器?

    symfony - 在 symfony 中记录 fatal error

    html - CSS 表格格式化为 HTML 表格

    date - 如何定义给定日期的日期格式