我们希望使用 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 来实现这一点?
围绕 slf4j 调用编写一个包装器,并为六个日志级别创建您自己的枚举。然后在您的包装器中,使用开关来调用正确的 slf4j 调用。
void myLog(Level level, String message)
{
switch (level)
{
case FATAL:
log.fatal(message);
break;
case ERROR:
log.error(message);
break;
....
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)