如何修改SLF4J日志输出

How to modify SLF4J log output

如何在 sl4j 中抑制类名?

public class LogManager {
  static Logger logger = LoggerFactory.getLogger(classname);

  static void log(String sender, String msg) {
    logger.info(sender + " - " + msg);       
  }
}

它的输出是这样的:

2018-05-23 16:15:41,000 [ 196598]   WARN - [classname] - [sender] - [msg]

如何删除类名?

其他问题:有没有办法去掉loglevel?字符串中的“[196598]”是什么数字,如何去掉?

如果您正在使用 Log4j,您可以使用 org.apache.log4j.PatternLayout 来格式化日志信息。

conversionPattern 设置转换模式。默认为 %r [%t] %p %c %x - %m%n.

c - 用于输出日志事件的类别。

例如,对于类别名称 "a.b.c",模式 %c{2} 将输出 "b.c".

C - 用于输出发出日志请求的调用者的完全限定 class 名称。

例如,对于 class 名称 "org.apache.xyz.SomeClass",模式 %C{1} 将输出 "SomeClass".

定义文件追加器的布局 log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd}-%t-%x-%-5p-%-C{1}:%m%n

这就是你需要在log4j的配置文件中提供的方式。