如何修改SLF4J日志输出?类名、日志级别等移除问题咨询
嗨,我来帮你逐一解决这些日志配置的问题!先看看你的现有代码和当前日志输出:
现有LogManager代码
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]
问题1:如何移除日志输出中的类名?
这个是通过修改日志框架的格式配置实现的(比如你用的是Logback、Log4j2这类主流框架)。日志里的[classname]对应配置文件里的%logger(或[%class])占位符,只要把格式模板里的这个部分删掉就行。
举个Logback配置的例子,如果原来的<pattern>是这样的:
<pattern>%d{yyyy-MM-dd HH:mm:ss,SSS} [%thread] %level - [%logger] - [%X{sender}] - [%msg]%n</pattern>
把[%logger] - 这部分移除,就不会再输出类名了。
问题2:是否可以移除日志级别?
当然可以!同样是修改日志格式模板,把代表日志级别的占位符(比如%level)删掉即可。比如上面的例子里,去掉%level - 这部分,日志输出就不会再显示WARN/INFO这类级别标识了。
不过要提醒一句:日志级别对后续排查问题很有帮助,能快速区分日志的严重程度,除非有特别明确的需求,不然不建议移除哦。
问题3:输出中的“[ 196598]”是什么内容,如何移除?
这个是线程ID(Thread ID),表示输出这条日志时对应的线程编号。要移除它的话,还是修改格式模板,把对应线程信息的占位符(比如[%thread])删掉即可。比如上面的Logback例子里,去掉[%thread] 这部分,就不会再显示这个线程ID了。
内容的提问来源于stack exchange,提问作者DynamicBit
相关产品推荐
相关产品推荐

