【发布时间】:2011-04-19 09:48:31
【问题描述】:
我们正在寻找使用 SLF4J,但我们发现一件事是您不能将级别指定为参数,即
Logger.log(Level.INFO, "messsage");
你必须这样做
logger.info("message");
这可以防止通过方法传递所有内容,因此您可以将其他属性附加到类中的所有日志消息。
public class Test
{
public Test(SomeObj obj)
{
log(Level.INFO, "message");
}
public void anotherMethod()
{
log(Level.DEBUG, "another message");
}
private void log(Level level, String message)
{
logger.log(level, message + obj.someString());
}
}
有没有办法使用 SLF4j 实现这一点?
【问题讨论】:
-
传递字符串“INFO”和“DEBUG”,并使用反射调用正确的方法——开玩笑的!
-
事实上,大多数(可能所有)当代伐木者仍然遵循这种古老的范式,这是非常短视和遗憾的