基本配置

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <configuration scan="false">
  3. <!-- 集中管理的属性-->
  4. <!--
  5. 日志输出格式
  6. %-5level 日志级别
  7. %d{yyyy-MM-dd HH:mm:ss.SSS}
  8. %c类的完整名称
  9. %M方法
  10. %L行号
  11. %thread线程名称
  12. %m或者%msg 为信息
  13. %n换行
  14. [] 高亮
  15. -->
  16. <property name="pattern" value="[%-5level] [%thread] %d{yyyy-MM-dd HH:mm:ss.SSS} %n"/>
  17. <property name="log_dir" value="/logs"/>
  18. <!-- 控制台输出-->
  19. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  20. <!-- 日志消息格式-->
  21. <encoder class="ch.qos.logback.classic.encoder">
  22. <pattern>${pattern}</pattern>
  23. </encoder>
  24. </appender>
  25. <!-- 日志文件-->
  26. <appender name="file" class="ch.qos.logback.core.FileAppender">
  27. <file>${log_dir}/logback.log</file>
  28. <encoder class="ch.qos.logback.classic.encoder">
  29. <pattern>${pattern}</pattern>
  30. </encoder>
  31. </appender>
  32. <!-- html-->
  33. <appender name="htmlfile" class="ch.qos.logback.core.FileAppender">
  34. <file>${log_dir}/logback.html</file>
  35. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  36. <layout class="ch.qos.logback.classic.html.HTMLLayout">
  37. <pattern>${pattern}</pattern>
  38. </layout>
  39. </encoder>
  40. </appender>
  41. <!-- root logger配置-->
  42. <root level="ALL">
  43. <appender-ref ref ="console"/>
  44. <appender-ref ref ="file"/>
  45. <appender-ref ref ="htmlfile"/>
  46. </root>
  47. </configuration>

日志拆分

  1. <appender name="htmlfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  2. <file>${log_dir}/roll_logback.html</file>
  3. <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
  4. <pattern>${pattern}</pattern>
  5. </encoder>
  6. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  7. <!-- 按照时间和压缩格式声明拆分的文件名-->
  8. <fileNamePattern>rolling.%d{yyyy-MM-dd-HH}.log%i.gz</fileNamePattern>
  9. <!-- 按照文件大小-->
  10. <maxFileSize>1MB</maxFileSize>
  11. </rollingPolicy>
  12. </appender>

日志过滤

  1. <!-- 异步日志-->
  2. <appender name="async" class="ch.qos.logback.classic.AsyncAppender">
  3. <!-- 日志级别过滤器-->
  4. <filtter class="ch.qos.logback.classic.filter.LevelFilter">
  5. <level>ERROR</level>
  6. <!-- 超过放行-->
  7. <onMatch>ACCEPT</onMatch>
  8. <!-- 小于拦截-->
  9. <onMismatch>DENY</onMismatch>
  10. </filtter>
  11. <appender-ref ref="rollFile"/>
  12. </appender>

异步日志

  1. <!-- 异步日志-->
  2. <appender name="async" class="ch.qos.logback.classic.AsyncAppender">
  3. <!-- 日志级别过滤器-->
  4. <filtter class="ch.qos.logback.classic.filter.LevelFilter">
  5. <level>ERROR</level>
  6. <!-- 超过放行-->
  7. <onMatch>ACCEPT</onMatch>
  8. <!-- 小于拦截-->
  9. <onMismatch>DENY</onMismatch>
  10. </filtter>
  11. <appender-ref ref="rollFile"/>
  12. </appender>

自定义

  1. <!-- 自定义logger-->
  2. <!-- 包名 级别 是否继承执行 root-->
  3. <logger name="com.ruoyi.tcpserver" level="info" additivity="false">
  4. <appender-ref ref="console"/>
  5. </logger>