我正在开发一个应用程序spring-boot。我使用logback进行日志端。我需要像这种格式格式化日志。
aaa-mm-dd HH:mm:ss ## level ## TheNameOfMyApplication ## typeOfLogs ## class ## message
这是我的文件logback.xml的片段
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} ## %-5level## TheNameofMyApplication ## %logger{36}##%msg%n
</Pattern>
</layout>
</appender>
<logger name="org.springframework.web" level="info" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<logger name="com.myapp" level="info" additivity="false">
<appender-ref ref="STDOUT" />
</logger>
<root level="error">
<appender-ref ref="STDOUT" />
</root>
</configuration>
我的问题是如何传递 logger.info()的参数,例如我的日志类型。我有三种类型: *技术,应用和其他
祝你好运
答案 0 :(得分:3)
您可以使用PatternLayout中的%X
说明符来使用MDC(映射的诊断上下文)。您的模式应如下所示:
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} ## %-5level%X{nameofapplication} %logger{36}##%msg%n
</Pattern>
然后,你的代码:
MDC.put("nameofapplication", "technical");
查看文档:{{3}}
对于slf4j/logback
,为了设置MDC默认值,当未指定条目时,您需要使用分隔符:-
,如:
%{variable:-default value}
所以,你的模式应该是:
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} ## %-5level%X{nameofapplication:-technical} %logger{36}##%msg%n
</Pattern>