123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <configuration scan="true" scanPeriod="60 seconds" debug="false">
- <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
- <conversionRule conversionWord="wex"
- converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
- <conversionRule conversionWord="wEx"
- converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
- <property name="CONSOLE_LOG_PATTERN"
- value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
- <property name="FILE_LOG_PATTERN"
- value="${FILE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
- <springProperty scope="context" name="application.name" source="spring.application.name"
- defaultValue="znyun"/>
- <springProperty scope="context" name="logging.path" source="logging.file.path"
- defaultValue="logs"/>
- <springProperty scope="context" name="logging.file.max-size" source="logging.logback.rollingpolicy.max-file-size"
- defaultValue="10MB"/>
- <springProperty scope="context" name="logging.file.max-history" source="logging.logback.rollingpolicy.max-history"
- defaultValue="30"/>
- <contextName>${application.name}</contextName>
- <springProfile name="dev,prod">
- <!--输出到控制台-->
- <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${CONSOLE_LOG_PATTERN}</pattern>
- </encoder>
- </appender>
- <root level="info">
- <appender-ref ref="console"/>
- </root>
- </springProfile>
- <springProfile name="dev,test,prod">
- <!--输出到文件-->
- <appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- 正在记录的日志文件的路径及文件名 -->
- <file>${logging.path}/info/${application.name}-info.log</file>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${logging.path}/info/${application.name}-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${logging.file.max-size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--只保留最近n天的日志-->
- <maxHistory>${logging.file.max-history}</maxHistory>
- </rollingPolicy>
- <!-- 追加方式记录日志 -->
- <append>true</append>
- <encoder>
- <pattern>${FILE_LOG_PATTERN}</pattern>
- </encoder>
- </appender>
- <appender name="file-warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>warn</level>
- <onMatch>ACCEPT</onMatch>
- <onMismatch>DENY</onMismatch>
- </filter>
- <!-- 正在记录的日志文件的路径及文件名 -->
- <file>${logging.path}/warn/${application.name}-warn.log</file>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${logging.path}$/warn/${application.name}-warn.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${logging.file.max-size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--只保留最近n天的日志-->
- <maxHistory>${logging.file.max-history}</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${FILE_LOG_PATTERN}</pattern>
- </encoder>
- </appender>
- <appender name="file-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>
- <!-- 正在记录的日志文件的路径及文件名 -->
- <file>${logging.path}/error/${application.name}-error.log</file>
- <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 每天日志归档路径以及格式 -->
- <fileNamePattern>${logging.path}/error/${application.name}-error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
- <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
- <maxFileSize>${logging.file.max-size}</maxFileSize>
- </timeBasedFileNamingAndTriggeringPolicy>
- <!--只保留最近n天的日志-->
- <maxHistory>${logging.file.max-history}</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${FILE_LOG_PATTERN}</pattern>
- </encoder>
- </appender>
- <!-- 用户访问日志输出 -->
- <appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logging.path}/user/sys-user.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- 按天回滚 daily -->
- <fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
- <fileNamePattern>${logging.path}$/user/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!--只保留最近n天的日志-->
- <maxHistory>${logging.file.max-history}</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>${FILE_LOG_PATTERN}</pattern>
- </encoder>
- </appender>
- <root level="INFO">
- <appender-ref ref="file-info"/>
- <appender-ref ref="file-warn"/>
- <appender-ref ref="file-error"/>
- </root>
- <!--系统用户操作日志-->
- <logger name="sys-user" level="info">
- <appender-ref ref="sys-user"/>
- </logger>
- </springProfile>
- </configuration>
|