log4j2-spring-dev.xml 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration status="OFF">
  3. <properties>
  4. <property name="LOG_HOME">./logs/product</property>
  5. <Property name="CONSOLE_LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{blue} %clr{%-5level}
  6. %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%l}{cyan} %clr{:}{faint} %m%n%xwEx
  7. </Property>
  8. </properties>
  9. <appenders>
  10. <!-- 日志级别:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF -->
  11. <Console name="Console" target="SYSTEM_OUT">
  12. <!--只接受程序中INFO级别的日志进行处理-->
  13. <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
  14. <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}]-[%-5level]-[%class{36} %L %M - %msg%xEx]%n"/>
  15. </Console>
  16. <!--处理DEBUG级别的日志,并把该日志放到logs/debug.log文件中-->
  17. <!--打印出DEBUG级别日志,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
  18. <RollingFile name="RollingFileDebug" fileName="${LOG_HOME}/debug.log"
  19. filePattern="${LOG_HOME}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
  20. <Filters>
  21. <ThresholdFilter level="DEBUG"/>
  22. <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
  23. </Filters>
  24. <PatternLayout
  25. pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>
  26. <Policies>
  27. <SizeBasedTriggeringPolicy size="200 MB"/>
  28. <TimeBasedTriggeringPolicy interval="1"/>
  29. </Policies>
  30. <DefaultRolloverStrategy max="30">
  31. <Delete basePath="${LOG_HOME}/$${date:yyyy-MM}/" maxDepth="2">
  32. <IfFileName glob="*.log.gz"/>
  33. <!-- 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
  34. 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
  35. <!--30天-->
  36. <IfLastModified age="30d"/>
  37. </Delete>
  38. </DefaultRolloverStrategy>
  39. </RollingFile>
  40. <!--处理INFO级别的日志,并把该日志放到logs/info.log文件中-->
  41. <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
  42. filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
  43. <Filters>
  44. <!--只接受INFO级别的日志,其余的全部拒绝处理-->
  45. <LevelRangeFilter maxLevel="INFO" minLevel="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
  46. </Filters>
  47. <PatternLayout
  48. pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>
  49. <Policies>
  50. <SizeBasedTriggeringPolicy size="200 MB"/>
  51. <TimeBasedTriggeringPolicy interval="1"/>
  52. </Policies>
  53. <DefaultRolloverStrategy max="30">
  54. <Delete basePath="${LOG_HOME}/$${date:yyyy-MM}/" maxDepth="2">
  55. <IfFileName glob="*.log.gz"/>
  56. <!-- 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
  57. 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
  58. <!--30天-->
  59. <IfLastModified age="30d"/>
  60. </Delete>
  61. </DefaultRolloverStrategy>
  62. </RollingFile>
  63. <!--处理WARN级别的日志,并把该日志放到logs/warn.log文件中-->
  64. <RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log"
  65. filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
  66. <Filters>
  67. <ThresholdFilter level="WARN"/>
  68. <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
  69. </Filters>
  70. <PatternLayout
  71. pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>
  72. <Policies>
  73. <SizeBasedTriggeringPolicy size="200 MB"/>
  74. <TimeBasedTriggeringPolicy interval="1"/>
  75. </Policies>
  76. <DefaultRolloverStrategy max="30">
  77. <Delete basePath="${LOG_HOME}/$${date:yyyy-MM}/" maxDepth="2">
  78. <IfFileName glob="*.log.gz"/>
  79. <!-- 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
  80. 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
  81. <!--30天-->
  82. <IfLastModified age="30d"/>
  83. </Delete>
  84. </DefaultRolloverStrategy>
  85. </RollingFile>
  86. <!--处理error级别的日志,并把该日志放到logs/error.log文件中-->
  87. <RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"
  88. filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
  89. <ThresholdFilter level="ERROR"/>
  90. <PatternLayout
  91. pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %class{36} %L %M - %msg%xEx%n"/>
  92. <Policies>
  93. <SizeBasedTriggeringPolicy size="200 MB"/>
  94. <TimeBasedTriggeringPolicy interval="1"/>
  95. </Policies>
  96. <DefaultRolloverStrategy max="30">
  97. <Delete basePath="${LOG_HOME}/$${date:yyyy-MM}/" maxDepth="2">
  98. <IfFileName glob="*.log.gz"/>
  99. <!-- 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
  100. 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
  101. <!--30天-->
  102. <IfLastModified age="30d"/>
  103. </Delete>
  104. </DefaultRolloverStrategy>
  105. </RollingFile>
  106. <!--sql的日志记录追加器-->
  107. <RollingFile name="druidSqlRollingFile" fileName="${LOG_HOME}/sql.log"
  108. filePattern="${LOG_HOME}/$${date:yyyy-MM}/sql-%d{yyyy-MM-dd}-%i.log.gz">
  109. <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss}] %-5level %L %M - %msg%xEx%n"/>
  110. <Policies>
  111. <SizeBasedTriggeringPolicy size="200 MB"/>
  112. <TimeBasedTriggeringPolicy interval="1"/>
  113. </Policies>
  114. <DefaultRolloverStrategy max="30">
  115. <Delete basePath="${LOG_HOME}/$${date:yyyy-MM}/" maxDepth="2">
  116. <IfFileName glob="*.log.gz"/>
  117. <!-- 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
  118. 另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
  119. <!--30天-->
  120. <IfLastModified age="30d"/>
  121. </Delete>
  122. </DefaultRolloverStrategy>
  123. </RollingFile>
  124. </appenders>
  125. <loggers>
  126. <root level="INFO">
  127. <appender-ref ref="Console"/>
  128. <appender-ref ref="RollingFileInfo"/>
  129. <appender-ref ref="RollingFileWarn"/>
  130. <appender-ref ref="RollingFileError"/>
  131. <appender-ref ref="RollingFileDebug"/>
  132. </root>
  133. <!--记录druid-sql的记录-->
  134. <logger name="druid.sql.Statement" level="INFO" additivity="false">
  135. <appender-ref ref="druidSqlRollingFile"/>
  136. </logger>
  137. <!--log4j2 自带过滤日志-->
  138. <Logger name="org.apache.catalina.startup.DigesterFactory" level="error"/>
  139. <Logger name="org.apache.catalina.util.LifecycleBase" level="error"/>
  140. <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn"/>
  141. <logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
  142. <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn"/>
  143. <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error"/>
  144. <Logger name="org.hibernate.validator.internal.util.Version" level="warn"/>
  145. <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="warn"/>
  146. <logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
  147. <logger name="org.thymeleaf" level="warn"/>
  148. </loggers>
  149. </configuration>