如何JDK的记录器比较Apache的log4j的 ?
哪一个是用于定位Java 6的新项目好? 他们如何在灵活性和可配置性方面比较?
如何JDK的记录器比较Apache的log4j的 ?
哪一个是用于定位Java 6的新项目好? 他们如何在灵活性和可配置性方面比较?
使我想起了JDK记录仪已去为它的唯一的事情是,它是JDK的一部分,所以它不添加外部依赖。 如果选择的是只有这两个之间,我会用Log4j的去。 它仍然在追加程序方面提供更好的支持,是谁知道它(在我的轶事观察)的人数,和更好的API(这是主观的为好)。
从今天开始的一个项目,是最具诱惑力的事情是去SLF4J和deffer的决定 - 你可以在下面SLF4J不同的框架,只是改变了类路径总是堵塞。
话虽这么说,是利用最新的Java语言功能的其他选项(如Log5j)。 我建议采取长期看的logback (从Log4j的主要程序员之一,是SLF4J)。
我从来没有使用直接JDK记录器,但对于一个新的项目,我会强烈reccomend 的logback ,设计为log4j的继任者。 一些非常好的东西,你可以用它来做:
从...来
if (log.isDebugEnabled())
{
log.warn (i + "many ints,"+ l+"many longs");
}
至
log.debug("{} many ints, {} many longs", i, l);
缺点 - 大量的包需要反正的log4j,因为它是如此普遍,所以你的项目可能需要包括2个日志包。
对于一个新的项目,我会强烈建议SLF4J项目,提供通用前端的几个记录框架。
该{} -syntax由史蒂夫·B中所描述存在于SLF4J太(同一作者),所以你得到的所有好处,无论后台的,而仍然得到后端独立性。 另外一个log4j的桥梁可用,因此现有的代码透明可以使用SLF4J。 这是非常好的。
对于实际的后端的logback是好的,但你可能已经投资了log4j的 - 这是很容易leveragable。
我会建议JDK日志记录API 。 我已经用了很多年了,不用任何问题。 这是JDK的一部分,所以不需要额外的罐子。 Log4j和JDK日志之间的区别很小,而且,在我看来,并不能证明使用Log4j。
标准API和log4j的
Java开发人员经常问的一个问题是:
为什么我们应该使用log4j的日志框架时,Java提供了日志记录的API。 Java API的可以通过(java.util.logging中)访问?
Log4j中有超过标准的记录API以下优点:
我挣扎着这个问题几次; 与JDK7和jdk8; Java日志超快速,光滑,但我们唯一需要把程序员的帽子,同时配置。
要登录到多个文件destiantions,我们neeed创建扩展FielHandler signare类,并利用它们在属性文件来配置,这种复杂性似乎费时,但一旦你挂机的效率和可靠性是真棒。