logback模板
xml配置
<?xml version="1.0" encoding="UTF-8"?> <configuration> <springProperty scope="context" name="appname" source="spring.application.name"/> <springProperty scope="context" name="logtag" source="server.port" defaultValue=""/> <!-- <include resource="org/springframework/boot/logging/logback/base.xml" /> <jmxConfigurator /> --> <property name="log.path" value="log"/> <property name="log.pattern" value="%X{reqid} [%d{HH:mm:ss.SSS}] %-5level %logger{200} - [%method,%line] - %msg%n"/> <!-- <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%X{request-id}] %-5level %logger{200} - [%method,%line] - %msg%n" /> --> <!-- 系统日志输出 --> <appender name="file_info_test" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/abb.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 按天回滚 daily --> <fileNamePattern>${log.path}/bakk.%d{yyyy-MM-dd}.log </fileNamePattern> <!-- 日志最大的历史 7天 --> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- 系统日志输出 --> <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/app${logtag}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 按天回滚 daily --> <fileNamePattern>${log.path}/bak${logtag}.%d{yyyy-MM-dd}.log </fileNamePattern> <!-- 日志最大的历史 60天 --> <maxHistory>7</maxHistory> </rollingPolicy> <!-- <encoder> <pattern>${log.pattern}</pattern> </encoder> --> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> <providers> <pattern> <pattern> { "appname":"${appname}", "path": "%X{path}", "reqid": "%X{reqid}", "uid": "%X{uid}", "comid": "%X{comid}", "time": "%date{yyyy-MM-dd HH:mm:ss.SSS}", "level": "%level", "pid": "${PID:-}", "class": "%logger", "method":"%method", "message":"%message", "stack_trace": "%exception" } </pattern> </pattern> </providers> </encoder> </appender> <!-- 显示sql、使用的参数、结果集 --> <logger name="java.sql" level="debug"/> <logger name="org" level="error"/> <logger name="io.netty" level="error"/> <logger name="io.lettuce" level="error"/> <logger name="com.alibaba" level="error"/> <logger name="com.baomidou.mybatisplus" level="error"/> <logger name="springfox" level="error"/> <logger name="com.github" level="error"/> <springProfile name="dev"> <!-- 控制台输出 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="console"/> </root> </springProfile> <springProfile name="test | sit | pre"> <!-- 开发时不用打这些日志 --> <root level="info"> <appender-ref ref="file_info_test"/> </root> </springProfile> <springProfile name="pro | demo | demo2 | iwip"> <root level="info"> <appender-ref ref="file_info"/> </root> </springProfile> </configuration>
pom依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.6</version>
</dependency>