Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谷歌Java日志库?_Java_Logging_Log4j_Guava_Apache Commons Logging - Fatal编程技术网

谷歌Java日志库?

谷歌Java日志库?,java,logging,log4j,guava,apache-commons-logging,Java,Logging,Log4j,Guava,Apache Commons Logging,我一直在使用这个库,发现它在参数验证方面比ApacheCommons有用得多(即检查前置条件、不变的对象状态、方便地在null上抛出正确的Exception类型、空的字符串、内联null检查赋值、异常消息格式和可空类型的专门键入)。我没有看过该库的其他功能,但这足以让我切换 现在很自然的问题是: 我正在使用我的日志记录,就像我在进行参数验证时所做的那样。谷歌的框架是否有类似的“”可以让我切换到,并带来复合好处?我不介意Log4j或Commons,但在我所研究的方面,Guava比Commons好得

我一直在使用这个库,发现它在参数验证方面比ApacheCommons有用得多(即检查前置条件、不变的对象状态、方便地在
null
上抛出正确的
Exception
类型、空的
字符串
、内联
null
检查赋值、
异常
消息格式和可空类型的专门键入)。我没有看过该库的其他功能,但这足以让我切换

现在很自然的问题是:

我正在使用我的日志记录,就像我在进行参数验证时所做的那样。谷歌的框架是否有类似的“”可以让我切换到,并带来复合好处?我不介意Log4j或Commons,但在我所研究的方面,Guava比Commons好得多

我看到Android有自己的日志框架,我很喜欢,谷歌是否也为基本Java提供了日志框架


编辑:重读我的问题,我意识到这可能暗示了我对谷歌代码的教条式偏好,而我没有这种偏好,以及一种潜在的假设,即从谷歌出来的任何东西都会被定义为“完美”。我不持有这些“积极的先入之见”总之,我的意思是,在两层中采用一个提供者可能会有一些协同作用,但我没有以书面形式表达出来。可能有一些东西可以智能地记录,例如,一个Guava可选对象或关联对象,从而节省构建特定字符串的时间。format()s、 我正在寻找一个谷歌图书馆来利用这些潜在的协同效应,这不是出于先天的偏好。事实上,在决定转换之前,我首先将番石榴与我以前基于Commons的论证方式进行了比较。考虑到所有因素,我非常欣赏谷歌免费发布的代码,我认为我从中学到了很多东西我将继续这样做,因为它的质量非常高。不过,我从未允许它成为一种邪教


参考资料:


据我所知不是这样。我建议使用。

最好避免使用Commons日志记录。请参阅以获得全面的分析。是的,它非常古老(是的,作者有既得利益),但它都适用。链接说明了——这个库在任何地方都没有太多的爱

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


最好的标准是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的前端,这是一个非常好的日志框架;-)切换答案,因为你提供了更多的背景信息。。。