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);
或类似的东西。
您是否知道日志框架或日志框架的扩展可以帮助解决这个问题?
答案 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)
为此编写自己的包装器方法很容易。