是否有针对Java 5或更高版本设计的log4j或commons日志记录扩展或其他日志记录框架?

时间:2009-02-18 10:54:58

标签: java logging log4j java-5

Java 5引入了许多功能,可以使日志语句不那么混乱,例如可变数量的参数和printf。这可以减轻记录某些内容时发生的所有消息构建代码,以及周围的if

例如,而不是写:

if (log.isDebugEnabled()
{
    log.debug("User id: "+uid+", Request id:"
    + rid +", Client IP: "+ip+" blah blah blah");
}

我想写:

log.debug("User id: %s, Request id: %s, Client IP: %s blah blah blah",
uid, rid, ip);

或类似的东西。

您是否知道日志框架或日志框架的扩展可以帮助解决这个问题?

3 个答案:

答案 0 :(得分:3)

Log5j正是您所需要的。

答案 1 :(得分:2)

Simple Logging Facade for Java (SLF4J)

  

Java或Java的简单日志外观   (SLF4J)旨在作为一个   各种日志API的简单外观   允许最终用户插入   期望的实施   部署时间。 SLF4J也支持一个   弥合传统API以及   源代码迁移工具。

     

SLF4J API提供了先进的功能   各种日志记录的抽象   系统,包括JDK1.4日志记录,   log4j和logback。功能包括   参数化日志记录和MDC支持。

示例:

logger.info("{} {}!", "Hello", "world");

制作“Hello world!”但仅在启用了信息级别时才会显示。

答案 2 :(得分:1)

为此编写自己的包装器方法很容易。