<configuration>
|
<property name="LOG_HOME" value="./logs/backend" />
|
<timestamp key="byDate" datePattern="yyyy-MM-dd"/>
|
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
<property name="MESSAGE_FILE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}.%M - %msg%n" />
|
<!-- 日志文件保留时长 -->
|
<property name="maxhistory" value="60"/>
|
<!-- 日志文件分割大小 -->
|
<property name="logSize" value="500MB"/>
|
|
<!-- 控制台 -->
|
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
<level>DEBUG</level>
|
</filter>
|
<layout class="ch.qos.logback.classic.PatternLayout">
|
<Pattern>${MESSAGE_FILE_PATTERN}</Pattern>
|
</layout>
|
</appender>
|
|
<!-- error级别日志文件 -->
|
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<append>true</append>
|
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
<level>ERROR</level>
|
</filter>
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>${LOG_HOME}/error/product_error_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<!--日志文件保留天数-->
|
<maxHistory>${maxhistory}</maxHistory>
|
<!--日志分割大小-->
|
<maxFileSize>${logSize}</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<pattern>${MESSAGE_FILE_PATTERN}</pattern>
|
</encoder>
|
</appender>
|
|
<!-- info级别日志文件 -->
|
<appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<append>true</append>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>INFO</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>${LOG_HOME}/info/product_info_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<!--日志文件保留天数-->
|
<maxHistory>${maxhistory}</maxHistory>
|
<!--日志分割大小-->
|
<maxFileSize>${logSize}</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<pattern>${MESSAGE_FILE_PATTERN}</pattern>
|
</encoder>
|
</appender>
|
|
<!-- debug级别日志文件 -->
|
<appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
<append>true</append>
|
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
<level>DEBUG</level>
|
<onMatch>ACCEPT</onMatch>
|
<onMismatch>DENY</onMismatch>
|
</filter>
|
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
<fileNamePattern>${LOG_HOME}/debug/product_debug_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
|
<!--日志文件保留天数-->
|
<maxHistory>${maxhistory}</maxHistory>
|
<!--日志分割大小-->
|
<maxFileSize>${logSize}</maxFileSize>
|
</rollingPolicy>
|
<encoder>
|
<pattern>${MESSAGE_FILE_PATTERN}</pattern>
|
</encoder>
|
</appender>
|
<!--db log configure-->
|
<logger name="com.apache.ibatis" level="INFO"/>
|
<logger name="java.sql.Connection" level="INFO"/>
|
<logger name="java.sql.Statement" level="INFO"/>
|
<logger name="java.sql.PreparedStatement" level="INFO"/>
|
<logger name="org.springframework" level="INFO"/>
|
|
|
<!-- 生产环境 -->
|
<springProfile name="prod">
|
<root level="info">
|
<appender-ref ref="consoleAppender"/>
|
<appender-ref ref="errorAppender"/>
|
<appender-ref ref="infoAppender"/>
|
</root>
|
</springProfile>
|
|
<!-- 测试环境 -->
|
<springProfile name="test">
|
<root level="debug">
|
<appender-ref ref="errorAppender"/>
|
<appender-ref ref="infoAppender"/>
|
<appender-ref ref="debugAppender"/>
|
</root>
|
</springProfile>
|
|
<!-- 开发环境 -->
|
<springProfile name="dev">
|
<root level="debug">
|
<appender-ref ref="consoleAppender"/>
|
<appender-ref ref="errorAppender"/>
|
<appender-ref ref="infoAppender"/>
|
<appender-ref ref="debugAppender"/>
|
</root>
|
</springProfile>
|
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
|
</configuration>
|