1. <?xml version="1.0" encoding="UTF-8"?>
    2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
    3. <!-- 日志存放路径 -->
    4. <property name="log.path" value="./logs" />
    5. <!-- 日志输出格式 -->
    6. <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - [%X{TRACE_ID}] - %msg%n" />
    7. <!-- 控制台输出 -->
    8. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    9. <encoder>
    10. <pattern>${log.pattern}</pattern>
    11. </encoder>
    12. </appender>
    13. <!-- 系统日志输出 -->
    14. <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
    15. <file>${log.path}/info.log</file>
    16. <!-- 循环政策:基于时间创建日志文件 -->
    17. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    18. <!-- 日志文件名格式 -->
    19. <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
    20. <!-- 日志最大的历史 30天 -->
    21. <maxHistory>30</maxHistory>
    22. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    23. <maxFileSize>100MB</maxFileSize>
    24. </timeBasedFileNamingAndTriggeringPolicy>
    25. </rollingPolicy>
    26. <encoder>
    27. <pattern>${log.pattern}</pattern>
    28. </encoder>
    29. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    30. <!-- 过滤的级别 -->
    31. <level>INFO</level>
    32. <!-- 匹配时的操作:接收(记录) -->
    33. <onMatch>ACCEPT</onMatch>
    34. <!-- 不匹配时的操作:拒绝(不记录) -->
    35. <onMismatch>DENY</onMismatch>
    36. </filter>
    37. </appender>
    38. <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
    39. <file>${log.path}/error.log</file>
    40. <!-- 循环政策:基于时间创建日志文件 -->
    41. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    42. <!-- 日志文件名格式 -->
    43. <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
    44. <!-- 日志最大的历史 30天 -->
    45. <maxHistory>30</maxHistory>
    46. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    47. <maxFileSize>100MB</maxFileSize>
    48. </timeBasedFileNamingAndTriggeringPolicy>
    49. </rollingPolicy>
    50. <encoder>
    51. <pattern>${log.pattern}</pattern>
    52. </encoder>
    53. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    54. <!-- 过滤的级别 -->
    55. <level>ERROR</level>
    56. <!-- 匹配时的操作:接收(记录) -->
    57. <onMatch>ACCEPT</onMatch>
    58. <!-- 不匹配时的操作:拒绝(不记录) -->
    59. <onMismatch>DENY</onMismatch>
    60. </filter>
    61. </appender>
    62. <!-- 系统模块日志级别控制 -->
    63. <logger name="com.mega" level="info" />
    64. <!-- Spring日志级别控制 -->
    65. <logger name="org.springframework" level="warn" />
    66. <root level="info">
    67. <appender-ref ref="console" />
    68. </root>
    69. <!--系统操作日志-->
    70. <root level="info">
    71. <appender-ref ref="file_info" />
    72. <appender-ref ref="file_error" />
    73. </root>
    74. </configuration>