用于Java日志记录的Google库?

时间:2012-09-17 10:12:20

标签: java logging log4j guava apache-commons-logging

我一直在使用Google Guava库并发现它比Apache Commons更有用于参数验证(即检查前置条件,不变对象状态,方便地在{{1}上抛出正确的Exception类型},空null,内联String检查分配,null消息格式化和可空类型的专门输入)。我没有看过图书馆的其他功能,但这足以让我切换。

现在非常自然的问题:

我正在使用Apache Commons Logging进行日志记录,就像我在进行参数验证一样。我可以切换到Google的框架中是否有类似的“this goes to 11”,具有复合效益?我不介意Log4j或Commons,但在我研究的方面,番石榴比Commons好得多......

我看到Android有它的日志框架,我喜欢,Google也提供基本Java的日志框架吗?


编辑:重新阅读我的问题我意识到它可能会以某种方式暗示对谷歌代码的教条偏好,我没有,以及一个潜在的假设,即从谷歌出来的任何东西都将是“完美的”。我根本没有持有这些“积极的先入之见”,我的意思是,但未能以书面形式表达,在两层采用单一供应商时可能存在一些协同作用。可能存在智能地记录的内容,例如,Guava Optional对象或关联对象,从而节省了构造特定String.format()的时间。我一直在寻找一个Google库来利用这些潜在的协同效应,而不是基于先验偏好。事实上,在确定切换之前,我首先将Guava与我的旧的基于Commons的参数检查方式进行比较。考虑到所有事情,我非常感谢Google免费发布的代码,我认为我从中学到了很多东西,并且考虑到它的高品质,我将继续这样做。不过,我从未允许这成为邪教。


参考文献:

2 个答案:

答案 0 :(得分:6)

最好避免使用Commons Logging。请参阅http://articles.qos.ch/thinkAgain.html进行全面分析。是的,它已经很老了(是的,作者有既得利益),但这一切都适用。链接的'Commons Logging was my fault'说明了 - 这个图书馆真的没有多少爱 - 无处不在。

显然,Google首选的解决方案是java.util.logging。如果您在Google App Engine上进行Java编程,您会看到这一点。

最好的标准是slf4j over logback。我认为没有理由避免它。您很可能已经在使用slf4j - 如果不是直接通过类路径上的其他库间接使用 - 它是事实上的现代标准。

答案 1 :(得分:4)

不是我知道的。我建议使用slf4j