|
@@ -0,0 +1,163 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<configuration>
|
|
|
+ <!-- 日志存放路径 -->
|
|
|
+ <springProperty scope="context" name="log.path" source="logging.path"/>
|
|
|
+ <!-- 日志输出格式 -->
|
|
|
+ <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - [%method,%line] - %msg%n"/>
|
|
|
+
|
|
|
+ <!-- 控制台输出 -->
|
|
|
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
|
|
+ <encoder>
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ </encoder>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- 错误日志输出 -->
|
|
|
+ <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <file>${log.path}/error.log</file>
|
|
|
+ <!-- 循环政策:基于时间创建日志文件 -->
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <!-- 日志文件名格式 -->
|
|
|
+ <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%i.log.gz</fileNamePattern>
|
|
|
+ <!--日志文件最大的大小 -->
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ <!-- 日志最大的历史 60天 -->
|
|
|
+ <maxHistory>60</maxHistory>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder>
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <!-- 过滤的级别: 如果定义了日志级别为warn ,却没有指定 warn的日志处理方式: warn日志信息就不会有 -->
|
|
|
+ <level>ERROR</level>
|
|
|
+ <!-- 匹配时的操作:接收(记录) -->
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <!-- 不匹配时的操作:拒绝(不记录) -->
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- 警告日志输出 -->
|
|
|
+ <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <file>${log.path}/warn.log</file>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%i.log.gz</fileNamePattern>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ <maxHistory>30</maxHistory>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder>
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>WARN</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- 记录日志输出 -->
|
|
|
+ <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <file>${log.path}/info.log</file>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%i.log.gz</fileNamePattern>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ <maxHistory>60</maxHistory>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder>
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>INFO</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- 调试日志输出 -->
|
|
|
+ <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <file>${log.path}/debug.log</file>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%i.log.gz</fileNamePattern>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ <maxHistory>30</maxHistory>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder>
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>DEBUG</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- 指定日志输出 -->
|
|
|
+ <appender name="POINT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <file>${log.path}/point.log</file>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/point-%i.log.gz</fileNamePattern>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>20MB</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ <maxHistory>60</maxHistory>
|
|
|
+ </rollingPolicy>
|
|
|
+ <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
|
|
+ <layout class="ch.qos.logback.classic.PatternLayout">
|
|
|
+ <pattern>${log.pattern}</pattern>
|
|
|
+ </layout>
|
|
|
+ </encoder>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- Spring日志级别控制 -->
|
|
|
+ <logger name="org.springframework" level="warn"/>
|
|
|
+
|
|
|
+ <!-- hikari 日志级别 -->
|
|
|
+ <Logger name="com.zaxxer.hikari" level="info"></Logger>
|
|
|
+
|
|
|
+ <!-- 配置文件默认名字:logback-spring.xml,也可以用logback.xml -->
|
|
|
+
|
|
|
+ <!-- 1. 多环境配置,通过springProfile设置环境,root内容会自动追加到logger -->
|
|
|
+ <!-- 2. 过滤的级别: 如果定义了日志级别为warn ,却没有指定 warn的日志处理方式: warn日志信息就不会有 -->
|
|
|
+ <!-- 3. 指定类输出日志到指定文件夹: private static final Logger logger = LoggerFactory.getLogger("point"); -->
|
|
|
+ <!-- # 日志配置 logging.level.com.malk=debug logging.level.org.springframework: warn -->
|
|
|
+
|
|
|
+ <logger name="point" level="DEBUG">
|
|
|
+ <appender-ref ref="POINT_FILE"/>
|
|
|
+ </logger>
|
|
|
+
|
|
|
+ <!-- 开发环境: 打印控制台 -->
|
|
|
+ <springProfile name="dev">
|
|
|
+ <root level="warn">
|
|
|
+ <appender-ref ref="CONSOLE"/>
|
|
|
+ <appender-ref ref="INFO_FILE"/>
|
|
|
+ </root>
|
|
|
+ </springProfile>
|
|
|
+
|
|
|
+ <!-- 测试环境:输出文件 -->
|
|
|
+ <springProfile name="test">
|
|
|
+ <root level="info">
|
|
|
+ <appender-ref ref="DEBUG_FILE"/>
|
|
|
+ <appender-ref ref="INFO_FILE"/>
|
|
|
+ <appender-ref ref="WARN_FILE"/>
|
|
|
+ <appender-ref ref="ERROR_FILE"/>
|
|
|
+ </root>
|
|
|
+ </springProfile>
|
|
|
+
|
|
|
+ <!-- 生产环境: 输出文件 -->
|
|
|
+ <springProfile name="prod">
|
|
|
+ <root level="info">
|
|
|
+ <appender-ref ref="DEBUG_FILE"/>
|
|
|
+ <appender-ref ref="INFO_FILE"/>
|
|
|
+ <appender-ref ref="WARN_FILE"/>
|
|
|
+ <appender-ref ref="ERROR_FILE"/>
|
|
|
+ </root>
|
|
|
+ </springProfile>
|
|
|
+</configuration>
|