logback-spring.xml
springboot项目
maven中配置的变量
@app.name@
@log.path@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<property name="APP_NAME" value="@app.name@" />
<property name="LOG_HOME" value="@log.path@" />
<contextName>${APP_NAME}</contextName>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="TOTAL-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 指定日志文件的名称 -->
<file>${LOG_HOME}/${APP_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name ="ASYNC-TOTAL-FILE" class= "ch.qos.logback.classic.AsyncAppender">
<discardingThreshold >0</discardingThreshold>
<queueSize>2048</queueSize>
<neverBlock>true</neverBlock>
<appender-ref ref = "TOTAL-FILE"/>
</appender>
<appender name="ERROR-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 指定日志文件的名称 -->
<file>${LOG_HOME}/${APP_NAME}-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}.error.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--只打印error级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name ="ASYNC-ERROR-FILE" class= "ch.qos.logback.classic.AsyncAppender">
<discardingThreshold >0</discardingThreshold>
<queueSize>2048</queueSize>
<neverBlock>true</neverBlock>
<appender-ref ref = "ERROR-FILE"/>
</appender>
<!-- 测试环境+开发环境. 多个使用逗号隔开. -->
<springProfile name="dev,test">
<logger name="com.xx.yy" level="debug" additivity="false" >
<appender-ref ref="STDOUT"/>
<!-- 输出到日志文件 -->
<appender-ref ref="ASYNC-TOTAL-FILE" />
<appender-ref ref="ASYNC-ERROR-FILE" />
</logger>
<root level="info">
<!-- 输出到控制台 -->
<appender-ref ref="STDOUT"/>
<!-- 输出到日志文件 -->
<appender-ref ref="ASYNC-TOTAL-FILE" />
<appender-ref ref="ASYNC-ERROR-FILE" />
</root>
</springProfile>
<!-- 生产环境. -->
<springProfile name="prod">
<logger name="com.xx.yy" level="info" additivity="false" >
<!-- 输出到日志文件 -->
<appender-ref ref="ASYNC-TOTAL-FILE" />
<appender-ref ref="ASYNC-ERROR-FILE" />
</logger>
<root level="info">
<!-- 输出到日志文件 -->
<appender-ref ref="ASYNC-TOTAL-FILE" />
<appender-ref ref="ASYNC-ERROR-FILE" />
</root>
</springProfile>
</configuration>
网友评论