logback-spring.xml 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true">
  3. <springProperty scope="context" name="application_name" source="spring.application.name" defaultValue="server"/>
  4. <!-- 输出日志到控制台 ConsoleAppender -->
  5. <appender name="ConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
  6. <encoder>
  7. <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>-->
  8. <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
  9. <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n</pattern>
  10. <charset>UTF-8</charset>
  11. </encoder>
  12. </appender>
  13. <appender name="SystemOutFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
  14. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  15. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  16. <!-- 归档的日志文件的路径。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  17. <fileNamePattern>logs/${application_name}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  18. <!-- 除按日志记录之外,还配置了日志文件不能超过200M,若超过200M,日志文件会以索引0开始 -->
  19. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  20. <maxFileSize>200MB</maxFileSize>
  21. </timeBasedFileNamingAndTriggeringPolicy>
  22. </rollingPolicy>
  23. <!-- 追加方式记录日志 -->
  24. <append>true</append>
  25. <!-- 日志文件的格式 -->
  26. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  27. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %msg%n</pattern>
  28. <charset>utf-8</charset>
  29. </encoder>
  30. </appender>
  31. <appender name="ErrOutFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
  32. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  33. <fileNamePattern>logs/${application_name}-%d{yyyy-MM-dd}-error.%i.log</fileNamePattern>
  34. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  35. <maxFileSize>200MB</maxFileSize>
  36. </timeBasedFileNamingAndTriggeringPolicy>
  37. </rollingPolicy>
  38. <!-- 追加方式记录日志 -->
  39. <append>true</append>
  40. <!-- 日志文件的格式 -->
  41. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  42. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %msg%n</pattern>
  43. <charset>utf-8</charset>
  44. </encoder>
  45. <!-- 此日志文件记录error及以上级别的 -->
  46. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  47. <level>ERROR</level>
  48. </filter>
  49. </appender>
  50. <!--这个logger的设置是:举例在org.springframework包下面的所有输出日志必须级别level在info及以上级别才会被输出!-->
  51. <!--这样可以避免输出一些spring框架的许多常见debug信息!-->
  52. <logger name="org.springframework" level="info" />
  53. <logger name="org.json" level="error"/>
  54. <logger name="io.netty" level="info"/>
  55. <logger name="org.slf4j" level="info"/>
  56. <logger name="ch.qos.logback" level="info"/>
  57. <logger name="org.apache.kafka.clients" level="info"/>
  58. <!-- 生产环境配置 -->
  59. <springProfile name="prod">
  60. <root level="INFO">
  61. <appender-ref ref="ConsoleAppender"/>
  62. <appender-ref ref="SystemOutFileAppender"/>
  63. <appender-ref ref="ErrOutFileAppender"/>
  64. </root>
  65. </springProfile>
  66. <!-- 开发环境配置 -->
  67. <springProfile name="dev">
  68. <root level="INFO">
  69. <appender-ref ref="ConsoleAppender"/>
  70. <appender-ref ref="SystemOutFileAppender"/>
  71. <appender-ref ref="ErrOutFileAppender"/>
  72. </root>
  73. </springProfile>
  74. </configuration>