加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – SLF4J日志级别作为参数

发布时间:2020-12-14 05:10:39 所属栏目:Java 来源:网络整理
导读:这个问题在这里已经有一个答案: Setting log level of message at runtime in slf4j11 我们正在寻求使用SLF4J,但我们发现一件事是你不能指定级别作为参数 Logger.log(Level.INFO,"messsage"); 你必须这样做 logger.info("message"); 这样可以防止通过一种方
这个问题在这里已经有一个答案:> Setting log level of message at runtime in slf4j11
我们正在寻求使用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;
  ....
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读