3

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);

或类似的东西。

你知道一个日志框架或一个日志框架的扩展可以帮助解决这个问题吗?

4

3 回答 3

3

Log5j正是您所需要的。

于 2009-02-18T11:01:31.820 回答
2

Java 的简单日志门面 (SLF4J)

Java 或 (SLF4J) 的 Simple Logging Facade 旨在用作各种日志 API 的简单外观,允许最终用户在部署时插入所需的实现。SLF4J 还支持桥接遗留 API 以及源代码迁移工具。

SLF4J API 提供了各种日志系统的高级抽象,包括 JDK 1.4 日志、log4j 和 logback。功能包括参数化日志记录和 MDC 支持。

例子:

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

产生“你好世界!” 但前提是启用了信息级别。

于 2009-02-18T11:12:28.877 回答
1

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

于 2009-02-18T11:06:46.100 回答