application-test.properties
logback.file.path=/home/apps/logs/app1
logback.file.maxSize=20MB
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="1s">
<springProfile name="develop">
<property resource="application-develop.properties" />
</springProfile>
<springProfile name="test">
<property resource="application-test.properties" />
</springProfile>
<springProfile name="cluster2">
<property resource="application-cluster2.properties" />
</springProfile>
<springProperty name="APP_NAME" scope="context" source="spring.application.name" defaultValue="wy"/>
<springProperty name="ServerIP" scope="context" source="spring.cloud.client.ip-address" defaultValue="0.0.0.0"/>
<springProperty name="ServerPort" scope="context" source="server.port" defaultValue="0000"/>
<appender name="all_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>[${APP_NAME}:${ServerIP}:${ServerPort}]%date [%thread] %-5level %logger{80} - %msg%n</Pattern>
</layout>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${logback.file.path}/all_error.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
<MaxFileSize>${logback.file.maxSize}</MaxFileSize>
</rollingPolicy>
</appender>
<appender name="all_warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>[${APP_NAME}:${ServerIP}:${ServerPort}]%date [%thread] %-5level %logger{80} - %msg%n</Pattern>
</layout>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${logback.file.path}/all_warn.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
<MaxFileSize>${logback.file.maxSize}</MaxFileSize>
</rollingPolicy>
</appender>
<appender name="all_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${logback.file.path}/all_info.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
<MaxFileSize>${logback.file.maxSize}</MaxFileSize>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>[${APP_NAME}:${ServerIP}:${ServerPort}]%date [%thread] %-5level %logger{80} - %msg%n</Pattern>
</layout>
</appender>
<appender name="all_debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${logback.file.path}/all_debug.%d{yyyy-MM-dd}-%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory> <!-- 存放30天的日志 -->
<MaxFileSize>${logback.file.maxSize}</MaxFileSize>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>[${APP_NAME}:${ServerIP}:${ServerPort}]%date [%thread] %-5level %logger{80} - %msg%n</Pattern>
</layout>
</appender>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
<encoder>
<pattern>[${APP_NAME}:${ServerIP}:${ServerPort}]%d{yyyy-MM-ddTHH:mm:ss.SSS} [%thread] %-5level %logger{15} - %msg%n%throwable{10}</pattern>
</encoder>
</appender>
<appender name="ASYNC-ERROR" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="all_error"/>
</appender>
<appender name="ASYNC-WARN" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>256</queueSize>
<appender-ref ref="all_warn"/>
</appender>
<appender name="ASYNC-INFO" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>256</queueSize>
<appender-ref ref="all_info"/>
</appender>
<appender name="ASYNC-DEBUG" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>256</queueSize>
<appender-ref ref="all_debug"/>
</appender>
<root level="DEBUG">
<appender-ref ref="console" />
<appender-ref ref="ASYNC-DEBUG" />
<appender-ref ref="ASYNC-INFO" />
<appender-ref ref="ASYNC-WARN" />
<appender-ref ref="ASYNC-ERROR" />
</root>
</configuration>
参照:https://blog.csdn.net/qq_32101993/article/details/100772352