<springProperty scope="context" name="appname" source="spring.application.name"/>
<!-- 日志文件存放目录(环境变量) -->
<property name="logdir" value="${LOG_PATH}"/>
<!--输出到控制台 ConsoleAppender 不配置root采用默认console输出 -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
<pattern>%d{HH:mm:ss.SSS} [%thread] %5p %c{1}:%L - %msg%n</pattern>
</pattern>
</layout>
</appender>
<!--输出到文件 RollingFileAppender error信息单独归档 -->
<appender name="errorLog"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--过滤日志,仅记录error日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${logdir}/${appname}.error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logdir}/${appname}.error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 单个日志文件最多 1000MB, 180天的日志周期,最大不能超过30GB -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1000MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
<!--日志输出编码格式化 -->
<encoder>
<charset>UTF-8</charset>
<pattern>%d{HH:mm:ss.SSS} [%thread] %5p %c{1}:%L - %msg%n</pattern>
</encoder>
</appender>
<!--输出到文件 RollingFileAppender info信息单独归档 -->
<appender name="infoLog"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--过滤日志,仅记录info日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<File>${logdir}/${appname}.info.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${logdir}/${appname}.info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- 单个日志文件最多 1000MB, 180天的日志周期,最大不能超过30GB -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1000MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>180</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
<!--日志输出编码格式化 -->
<encoder>
<charset>UTF-8</charset>
<pattern>%d{HH:mm:ss.SSS} [%thread] %5p %c{1}:%L - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="consoleLog"/>
<appender-ref ref="errorLog"/>
<appender-ref ref="infoLog"/>
</root>
上文中配置的日志存储目录变量${LOG_PATH},如果是手动发布项目jar包,则需要指定路径,例如:java -DLOG_PATH=c:/git/ -jar xxxx.jar --spring.profiles.active=sit;如果是通过IDEA启动,可以在启动配置里的VM options选项中添加-DLOG_PATH=c:/git/ ,也可以在Environment variables里定义LOG_PATH变量。
网友评论