这个问题会定期询问,但我一直认为现有的Java日志框架过于复杂和过度设计,我想看看有什么新的。
我对当前项目有一个更为关键的问题,因为我们将JSON标准化为人类可读的数据编码,而且我见过的大多数日志框架都需要XML。我真的宁愿避免在95%的应用程序配置中使用JSON,而仅仅因为日志记录框架而使用XML(事实上,我讨厌将XML用于除文本标记以外的任何其他目的)。
是否有任何热门的新Java日志框架,这些框架都是主动维护的,功能相当强大,有maven仓库,可以重新配置而无需重新启动应用程序,并且不会将您绑定到XML?
答案 0 :(得分:20)
您有3个选项:
现在,让我们看看它们是如何满足您的要求的:
log4j
:
java.util.logging
(JUL):
LogManager#readConfiguration()
- Logback :
看起来你必须做出一些让步(或找到一个我不知道的框架)。我会选择Logback,这就是现在发生的事情。
答案 1 :(得分:4)
SLF4J是最新最好的。
当然,配置log4j所需的XML不能被视为压迫性的。您可能一般都反对XML配置,但即使这样也在改变。与大多数其他框架一样,Spring提供了使用XML或注释的选项。我认为反对XML除了标记以外的任何东西都太过分了。 Ant和NANT是否会因为选择XML而关闭?我想不是。
答案 2 :(得分:4)
最新不是logback吗?
答案 3 :(得分:0)
虽然log4j的常用配置方法是xml,但您也可以以编程方式对其进行配置,这意味着您可以使用所需的任何配置系统(并在运行时重新配置它)。
答案 4 :(得分:0)
您可能希望查看我们的Java日志记录工具SmartInspect(它是商业用途)。 SmartInspect是主动维护的,可以配置两行代码,并支持只包含name = value对的配置文件(无XML :))。 SmartInspect还可以在更改时动态地重新加载配置文件 - 这是实时配置更改和生产系统的有用功能。 SmartInspect还附带了一个您可能会觉得有用的图形日志分析和监控工具:
alt text http://www.gurock.com/images/feature/smartinspect-screenshot.png