logback-spring.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
  3. scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
  4. debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
  5. configuration 子节点为 appender、logger、root -->
  6. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  7. <!--用于区分不同应用程序的记录-->
  8. <contextName>iot-project</contextName>
  9. <!--日志文件所在目录,如果是tomcat,如下写法日志文件会在则为${TOMCAT_HOME}/bin/logs/目录下-->
  10. <property name="LOG_HOME" value="../logs/ibms-data-sdk"/>
  11. <!--
  12. %p:输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  13. %r:输出自应用启动到输出该日志讯息所耗费的毫秒数
  14. %t:输出产生该日志事件的线程名
  15. %f:输出日志讯息所属的类别的类别名
  16. %c:输出日志讯息所属的类的全名
  17. %d:输出日志时间点的日期或时间,指定格式的方式: %d{yyyy-MM-dd HH:mm:ss}
  18. %l:输出日志事件的发生位置,即输出日志讯息的语句在他所在类别的第几行。
  19. %m:输出代码中指定的讯息,如log(message)中的message
  20. %n:输出一个换行符号
  21. -->
  22. <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
  23. <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{36} %msg%n"/>
  24. <!--控制台-->
  25. <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  26. <!-- 字符串System.out(默认)或者System.err -->
  27. <target>System.out</target>
  28. <!-- 对记录事件进行格式化 -->
  29. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  30. <pattern>${pattern}</pattern>
  31. <!--解决乱码问题-->
  32. <charset>UTF-8</charset>
  33. </encoder>
  34. </appender>
  35. <!--滚动文件-->
  36. <appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  37. <!-- 被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建 -->
  38. <file>${LOG_HOME}/log.log</file>
  39. <!-- ThresholdFilter:临界值过滤器,过滤掉 TRACE 和 DEBUG 级别的日志 -->
  40. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  41. <level>INFO</level>
  42. </filter>
  43. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  44. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  45. <maxFileSize>100MB</maxFileSize>
  46. </timeBasedFileNamingAndTriggeringPolicy>
  47. <!--查看 gunzip -c xx.log.gz | less-->
  48. <fileNamePattern>${LOG_HOME}/log.%d{yyyy-MM-dd}.log.%i.gz</fileNamePattern>
  49. <maxHistory>5</maxHistory><!--保存最近30天的日志-->
  50. </rollingPolicy>
  51. <encoder>
  52. <charset>UTF-8</charset>
  53. <pattern>${pattern}</pattern>
  54. </encoder>
  55. </appender>
  56. <!--滚动文件-->
  57. <appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  58. <!-- ThresholdFilter:临界值过滤器,过滤掉 TRACE 和 DEBUG 级别的日志 -->
  59. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  60. <level>error</level>
  61. </filter>
  62. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  63. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  64. <maxFileSize>100MB</maxFileSize>
  65. </timeBasedFileNamingAndTriggeringPolicy>
  66. <fileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log.%i.gz</fileNamePattern>
  67. <maxHistory>30</maxHistory><!--保存最近30天的日志-->
  68. <totalSizeCap>5GB</totalSizeCap>
  69. </rollingPolicy>
  70. <encoder>
  71. <charset>UTF-8</charset>
  72. <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n</pattern>
  73. </encoder>
  74. </appender>
  75. <!--将日志输出到logstack-->
  76. <!--<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  77. <destination>47.93.173.81:7002</destination>
  78. <encoder class="net.logstash.logback.encoder.LogstashEncoder">
  79. <charset>UTF-8</charset>
  80. </encoder>
  81. <keepAliveDuration>5 minutes</keepAliveDuration>
  82. </appender>-->
  83. <!--这里如果是info,spring、mybatis等框架则不会输出:TRACE < DEBUG < INFO < WARN < ERROR-->
  84. <!--root是所有logger的祖先,均继承root,如果某一个自定义的logger没有指定level,就会寻找
  85. 父logger看有没有指定级别,直到找到root。-->
  86. <root level="INFO">
  87. <appender-ref ref="stdout"/>
  88. <appender-ref ref="infoFile"/>
  89. </root>
  90. </configuration>