sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

日志打印输出到控制台以及文件

一、application.properties文件配置

  1. #root 日志级别以WARN级别输出
  2. logging.level.root=WARN
  3. #springframework.web日志以DEBUG级别输出
  4. logging.level.org.springframework.web=DEBUG
  5. #配置控制台日志显示格式
  6. logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
  7. #配置文件中日志显示格式
  8. logging.pattern.file=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n

二、application-native/prod.properties文件配置

  1. #相对路径
  2. #logging.file.name=log/my.log
  3. #把日志信息写入日志文件,会自动生成
  4. logging.file.path=/logs

三、logback-spring.xml文件配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  3. <contextName>logback</contextName>
  4. <springProperty scope="context" name="LOG_PATH" source="logging.file.path"/>
  5. <!--控制台输出内容的颜色转换以及格式-->
  6. <substitutionProperty name="logging.pattern.console"
  7. value="%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
  8. <!--日志文件输出内容的格式-->
  9. <substitutionProperty name="logging.pattern.file"
  10. value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
  11. <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
  12. <conversionRule conversionWord="wex"
  13. converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
  14. <conversionRule conversionWord="wEx"
  15. converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
  16. <!-- &#45;&#45; 输出到控制台-->
  17. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  18. <!--控制台使用layout节点-->
  19. <layout class="ch.qos.logback.classic.PatternLayout">
  20. <pattern>
  21. ${logging.pattern.console}
  22. </pattern>
  23. </layout>
  24. </appender>
  25. <!--按天生成日志-->
  26. <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
  27. <Prudent>true</Prudent>
  28. <!--滚动策略,我配置了按天生成日志文件-->
  29. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  30. <!--相对路径,生成的文件就在项目根目录下-->
  31. <FileNamePattern>
  32. ${LOG_PATH}/%d{yyyy-MM}/%d{yyyy-MM-dd}.log
  33. </FileNamePattern>
  34. <!--注意超过365天的日志文件会被删除,即使已经按天分开也会删除-->
  35. <MaxHistory>365</MaxHistory>
  36. </rollingPolicy>
  37. <!--日志文件里只保存ERROR及以上级别的日志-->
  38. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  39. <level>DEBUG</level>
  40. </filter>
  41. <!--文件使用encoder节点-->
  42. <encoder>
  43. <Pattern>
  44. ${logging.pattern.file}
  45. </Pattern>
  46. </encoder>
  47. </appender>
  48. <!--这个logger里的配置相当于之前yml里的logging.level.com.lpc: trace-->
  49. <!--additivity的作用-->
  50. <!--true,则子Logger不止会在自己的appender里输出,还会在root的logger的appender里输出-->
  51. <!--而这个logger里没配置appender,所以得交给root打印-->
  52. <!--所以com.lpc包里的日志从TRACE级别开始-->
  53. <!--其他包里的日志根据root的配置从INFO级别开始打印-->
  54. <logger name="com.uama" level="INFO" additivity="true">
  55. </logger>
  56. <root level="DEBUG">
  57. <appender-ref ref="console"/>
  58. <appender-ref ref="file"/>
  59. </root>
  60. </configuration>

注意点:

  1. logging.file.path与logging.file.name两者生效其一
  2. logback-spring.xml文件中若注入application.properties中声明的值,则需要在logback-spring.xml文件中使用<springProperty>标签。
    <springProperty scope="context" name="LOG_PATH" source="logging.file.path"/>

    <springProperty>标签与<property>无大异,其中,name正常声明,source类似于value,不用”${}"。

https://blog.csdn.net/Hakuna_______matata/article/details/123839805
posted on 2022-08-27 11:59  sunny123456  阅读(1169)  评论(0编辑  收藏  举报