记录后者在Java中处理的信息

时间:2012-12-07 09:01:01

标签: java logging io

我需要记录符合以下要求的信息:

  • 用于将数据写入文件,后者将被处理
  • 输出行具有预定义的结构
  • 必须非常快
  • 它应该缓冲数据并将其写入后台文件。
  • 它应该支持旋转文件,并且还应该允许在需要时手动文件旋转

你碰巧知道任何支持这个的好图书馆吗? 或者你会建议我自己写吗?我不介意自己实施一个,但我想在做出决定之前知道我的选择是什么。

2 个答案:

答案 0 :(得分:3)

除了异步写入部分之外,大多数常见的Java日志库都支持您要求的大部分内容。您可能希望查看以下广泛使用的库:

  • Log4J - Log4J是极其可配置的,但它确实有一些问题应该在即将发布的新2.x版本系列中解决。

    < / LI>
  • Logback - 这是Log4J 1.2的后续版本 - Log4J 2.x将包含Logback的几项改进。

  • SLF4J - 此库可以充当许多底层日志库的代理,允许根据需要切换日志框架。这实际上可能是避免将自己绑定到特定日志库的最佳选择,尽管它可能不如直接使用底层API有效。

至于异步写入要求,如果有必要,将所有日志记录推送到您自己的单独线程应该相对容易。

修改

显然,Log4J does have support for asynchronous logging

答案 1 :(得分:0)

我没有任何直接的经验,但似乎log4j是一个非常受欢迎的选择。快速检查表明它支持文件轮换,并且被认为是快速的(至少比Java的内置工具快得多),这对我来说是最严格的要求。

链接:

Main website

Some SO discussion