谷歌Java日志库?
我一直在使用这个库,发现它在参数验证方面比ApacheCommons有用得多(即检查前置条件、不变的对象状态、方便地在谷歌Java日志库?,java,logging,log4j,guava,apache-commons-logging,Java,Logging,Log4j,Guava,Apache Commons Logging,我一直在使用这个库,发现它在参数验证方面比ApacheCommons有用得多(即检查前置条件、不变的对象状态、方便地在null上抛出正确的Exception类型、空的字符串、内联null检查赋值、异常消息格式和可空类型的专门键入)。我没有看过该库的其他功能,但这足以让我切换 现在很自然的问题是: 我正在使用我的日志记录,就像我在进行参数验证时所做的那样。谷歌的框架是否有类似的“”可以让我切换到,并带来复合好处?我不介意Log4j或Commons,但在我所研究的方面,Guava比Commons好得
null
上抛出正确的Exception
类型、空的字符串
、内联null
检查赋值、异常
消息格式和可空类型的专门键入)。我没有看过该库的其他功能,但这足以让我切换
现在很自然的问题是:
我正在使用我的日志记录,就像我在进行参数验证时所做的那样。谷歌的框架是否有类似的“”可以让我切换到,并带来复合好处?我不介意Log4j或Commons,但在我所研究的方面,Guava比Commons好得多
我看到Android有自己的日志框架,我很喜欢,谷歌是否也为基本Java提供了日志框架
编辑:重读我的问题,我意识到这可能暗示了我对谷歌代码的教条式偏好,而我没有这种偏好,以及一种潜在的假设,即从谷歌出来的任何东西都会被定义为“完美”。我不持有这些“积极的先入之见”总之,我的意思是,在两层中采用一个提供者可能会有一些协同作用,但我没有以书面形式表达出来。可能有一些东西可以智能地记录,例如,一个Guava可选对象或关联对象,从而节省构建特定字符串的时间。format()s、 我正在寻找一个谷歌图书馆来利用这些潜在的协同效应,这不是出于先天的偏好。事实上,在决定转换之前,我首先将番石榴与我以前基于Commons的论证方式进行了比较。考虑到所有因素,我非常欣赏谷歌免费发布的代码,我认为我从中学到了很多东西我将继续这样做,因为它的质量非常高。不过,我从未允许它成为一种邪教
参考资料:
最好的标准是slf4j而不是logback。我认为没有理由避免它。你很可能已经在使用slf4j了——如果不是直接的话,也可以通过类路径上的其他库间接使用——这是事实上的现代标准。我很好奇你为什么特别询问谷歌的框架。是的,他们已经编写了一些很好的框架Works,但这并不意味着他们是唯一能做到这一点的人。我想你可能想要的是“一个到11的日志框架”。我同意Guava比其他任何东西都好,但他们并不是万能的。特别是他们避免重复工作,你会看到logback也非常完美。肯定比log4j更好(由同一位作者编写)并且可能比其他所有的都好。实际上,slf4j的日志框架是logback,slf4j“只是”它的前端API(几乎任何其他库)@Joachim Sauer:请证明偏好/建议的合理性?具体来说,我从替换Apache Commons日志中能得到什么好处?@Robottinosino:slf4j/logback的一个论点是它是由log4j(Java世界中以前使用最广泛的日志框架)的开发人员开发的.logback有一组非常好的功能,但大多数功能与其他所有功能相同。slf4j可以用作任何日志框架的非常薄的包装(对于大多数框架,其开销几乎为0)。仅此一点就让slf4j非常受欢迎:您可以在不接触代码的情况下切换实际的日志框架。@Joachimauer更改日志框架您将这样做…可能永远不会?(如果您正在交付应用程序。如果您正在编写第三方可重用库,将您的偏好强加给用户是非常不礼貌的)。不过我同意你的结论,只需使用slf4j即可。@Iain:没错,但slf4j也是logback的前端,这是一个非常好的日志框架;-)切换答案,因为你提供了更多的背景信息。。。