首页 文章

如何组织java日志条目?

提问于
浏览
3

我想将我的java日志条目分组,以便更容易地在其中进行搜索 . 我的意思是有下一个日志记录:

14-Mar-2012 14:29:07 com.acme.service.AcmeService log
INFO: Start ACME operation
14-Mar-2012 14:29:07 com.acme.service.AcmeService log
INFO: step 1 - do something
...
14-Mar-2012 14:29:07 com.acme.service.AcmeService log
INFO: End ACME operation

这些记录彼此属于,因为这些是工作流的步骤(例如,我想跟踪web服务的过程) . 是否有一个良好的设计模式来保存这些记录,我将能够轻松地找到Web服务请求的日志? (例如,在所有日志条目的开头加上一个ID)?是否有工具可以通过自动分组来显示这些日志?像log4j电锯,但这个ID组合在一起?谢谢!

4 回答

  • 0

    为什么不扩展Level并添加自己的自定义级别 . 您的所有Web服务日志记录都可以在该级别完成 .

    拥有自己的级别后,您可以自定义记录方式,包括记录到不同的文件等

  • 0

    你在webapp中使用会话吗?如果是这样,您可以使用会话ID来区分请求 .

    对不起,刚看到你的例子,我认为你正在使用java.util.Logging . 以下内容仅适用于log4j . 我现在很想知道是否有人有我想知道的修复工具 . 根据我对两者的经验,我发现log4j更容易使用和配置 .

    Log4j solution

    通过过滤器传递所有请求,然后使用 NDC.push( id ) . 然后在模式中使用 %x 输出到文件 .

  • 2

    如果您使用的是Spring技术,则可以轻松配置Spring Integration模块以接收通道中的日志,使用路由器按类型拆分它们,并使用出站适配器将它们保存到数据库中 . 很多线路都是开箱即用的,你只需要做最少的编码 .

    http://www.springsource.org/spring-integration#documentation

  • 4

    无论使用哪种日志API创建它,您都可以使用Chainsaw来解析常规文本日志文件 . 请参阅欢迎选项卡中提供的示例receiver config xml中的LogFilePatternReceiver示例 .

    在您的示例中,一旦在日志文件输出中包含会话,就可以将会话添加为属性,然后使用会话进行着色/排序和过滤 . 您还可以将该会话ID用作“ Logger ”,并获得 Logger 树能够专注于单个 Logger 的好处,从而基本上为您提供“分组”行为 .

相关问题