logback-spring.xml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <include resource="org/springframework/boot/logging/logback/base.xml" />
  4. <jmxConfigurator/>
  5. <!--
  6. %m
  7. 输出代码中指定的消息
  8. %p
  9. 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  10. %r
  11. 输出自应用启动到输出该log信息耗费的毫秒数
  12. %c
  13. 输出所属的类目,通常就是所在类的全名
  14. %t
  15. 输出产生该日志事件的线程名
  16. %n
  17. 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
  18. %d
  19. 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},
  20. 输出类似:2002年10月18日 22:10:28,921
  21. %l
  22. 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
  23. -->
  24. <springProperty scope="context" name="log.path" source="logging.path" defaultValue="/var/log/saas/storage-server"/>
  25. <springProperty scope="context" name="spring.application.name" source="spring.application.name" defaultValue="storage-server"/>
  26. <springProperty scope="context" name="spring.profiles.active" source="spring.profiles.active" defaultValue="dev"/>
  27. <springProperty scope="context" name="common-pattern" source="logging.common-pattern" defaultValue="%d{yyyy-MM-dd HH:mm:ss.SSS}:[%5p] [%t:%r] [%C{1}:%M:%L] --> %m%n"/>
  28. <springProperty scope="context" name="log.level.console" source="logging.level.console" defaultValue="INFO"/>
  29. <springProperty scope="context" name="log.destination" source="logging.destination" defaultValue="192.168.253.3:5000"/>
  30. <contextName>${spring.application.name}-${spring.profiles.active}-logback</contextName>
  31. <appender name="CONSOLE_APPENDER" class="ch.qos.logback.core.ConsoleAppender">
  32. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  33. <level>${log.level.console}</level>
  34. </filter>
  35. <encoder>
  36. <pattern>${common-pattern}</pattern>
  37. </encoder>
  38. </appender>
  39. <appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
  40. <file>${log.path}/root.log</file>
  41. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
  42. <fileNamePattern>${log.path}/%d{yyyy-MM}/root-%d{yyyy-MM-dd}-%i.log.gz</fileNamePattern>
  43. <maxFileSize>128MB</maxFileSize>
  44. <maxHistory>7</maxHistory>
  45. <totalSizeCap>20GB</totalSizeCap>
  46. </rollingPolicy>
  47. <encoder>
  48. <pattern>${common-pattern}</pattern>
  49. </encoder>
  50. </appender>
  51. <!-- Appender to log in a JSON format -->
  52. <appender name="JSON_APPENDER" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  53. <destination>${log.destination}</destination>
  54. <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
  55. <providers>
  56. <pattern>
  57. <pattern>
  58. {
  59. "severity": "%level",
  60. "service": "${spring.application.name:-}",
  61. "trace": "%X{X-B3-TraceId:-}",
  62. "span": "%X{X-B3-SpanId:-}",
  63. "parent": "%X{X-B3-ParentSpanId:-}",
  64. "exportable": "%X{X-Span-Export:-}",
  65. "pid": "${PID:-}",
  66. "thread": "%thread",
  67. "class": "%logger{40}",
  68. "rest": "%message"
  69. }
  70. </pattern>
  71. </pattern>
  72. </providers>
  73. </encoder>
  74. </appender>
  75. <logger name="org.springframework" level="INFO"/>
  76. <logger name="com.usoftchina.saas" level="INFO"/>
  77. <springProfile name="dev">
  78. <root level="INFO">
  79. <appender-ref ref="CONSOLE_APPENDER"/>
  80. </root>
  81. </springProfile>
  82. <springProfile name="test">
  83. <root level="INFO">
  84. <appender-ref ref="CONSOLE_APPENDER"/>
  85. <appender-ref ref="ROOT_APPENDER"/>
  86. </root>
  87. </springProfile>
  88. <springProfile name="docker">
  89. <logger name="org.springframework" level="WARN"/>
  90. <root level="WARN">
  91. <appender-ref ref="CONSOLE_APPENDER"/>
  92. <appender-ref ref="JSON_APPENDER"/>
  93. </root>
  94. </springProfile>
  95. </configuration>