3

是否有来自 Google 的 Java 日志库?

我一直在使用Google Guava库,发现它比 Apache Commons 更适用于参数验证(即检查先决条件、不变的对象状态、方便地将正确的Exception类型放在null、empty String、内联null检查赋值、Exception消息格式和可空的特殊类型类型)。我没有看过图书馆的其他功能,但这足以让我切换。

现在很自然的问题:

我正在使用Apache Commons Logging进行日志记录,就像我为参数验证所做的那样。我可以切换到谷歌框架的类似“ this go to 11 ”,并带来复合收益吗?我不介意 Log4j 或 Commons,但 Guava 在我研究的方面比 Commons 好得多......

我看到 Android 有它的日志框架,我喜欢它,Google 是否也为基本 Java 提供了一个?


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


参考:

4

2 回答 2

7

最好避免使用 Commons Logging。请参阅http://articles.qos.ch/thinkAgain.html进行全面分析。是的,它很老了(是的,作者有既得利益),但这一切都适用。链接的“Commons Logging 是我的错”说明了——对这个库真的没有太多的爱——在任何地方。

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

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

于 2012-09-18T02:56:04.093 回答
4

从来没听说过。我推荐使用slf4j

于 2012-09-17T10:13:59.600 回答