全部产品
云市场

日志配置

更新时间:2019-09-18 12:45:44

Web 工程 和 Core 工程的日志配置相同,因此本文将以 Core 工程为例,假设 groupId 为 com.alipay.sofa,artifactId 为 APPNAME,那么默认生成的日志配置文件 logback-spring.xml 如下所示:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!--注意:若需要用 spring 扩展 profile 支持,则文件名应为 logback-spring.xml,而不是 logback.xml。-->
  4. <springProperty scope="context" name="logging.path" source="logging.path"/>
  5. <springProperty scope="context" name="logging.level" source="logging.level.com.alipay.sofa"/>
  6. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  7. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  8. <Pattern>%d{HH:mm:ss.SSS} %-5level %logger{80} - %msg%n</Pattern>
  9. </encoder>
  10. </appender>
  11. <!--以“天”为单位生成各日志文件 -->
  12. <appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
  13. <append>true</append>
  14. <!-- 过滤器,只记录 error 级别的日志 -->
  15. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  16. <level>error</level>
  17. <onMatch>ACCEPT</onMatch>
  18. <onMismatch>DENY</onMismatch>
  19. </filter>
  20. <!-- 日志名称 -->
  21. <file>${logging.path}/APPNAME/common-error.log</file>
  22. <!-- 每天生成一个日志文件,保存 30 天的日志文件 -->
  23. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  24. <!--日志文件输出的文件名:按天回滚 -->
  25. <FileNamePattern>${logging.path}/APPNAME/common-error.log.%d{yyyy-MM-dd}</FileNamePattern>
  26. <!--日志文件保留天数-->
  27. <MaxHistory>30</MaxHistory>
  28. </rollingPolicy>
  29. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  30. <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度 %msg:日志消息,%n 是换行符-->
  31. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  32. <!-- 编码 -->
  33. <charset>UTF-8</charset>
  34. </encoder>
  35. </appender>
  36. <appender name="ROOT-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
  37. <append>true</append>
  38. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  39. <level>${logging.level}</level>
  40. <onMatch>ACCEPT</onMatch>
  41. <onMismatch>DENY</onMismatch>
  42. </filter>
  43. <file>${logging.path}/APPNAME/common-default.log</file>
  44. <!-- 每天生成一个日志文件,保存 30 天的日志文件 -->
  45. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  46. <!--日志文件输出的文件名:按天回滚 daily -->
  47. <FileNamePattern>${logging.path}/APPNAME/common-default.log.%d{yyyy-MM-dd}
  48. </FileNamePattern>
  49. <!--日志文件保留天数-->
  50. <MaxHistory>30</MaxHistory>
  51. </rollingPolicy>
  52. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  53. <!--格式化输出:%d 表示日期,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度 %msg:日志消息,%n 是换行符-->
  54. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
  55. <!-- 编码 -->
  56. <charset>UTF-8</charset>
  57. </encoder>
  58. </appender>
  59. <logger name="com.alipay.sofa" level="${logging.level}" additivity="false">
  60. <appender-ref ref="ROOT-APPENDER"/>
  61. <appender-ref ref="ERROR-APPENDER"/>
  62. </logger>
  63. <root level="${logging.level}">
  64. <appender-ref ref="STDOUT"/>
  65. <appender-ref ref="ROOT-APPENDER"/>
  66. <appender-ref ref="ERROR-APPENDER"/>
  67. </root>
  68. </configuration>

说明:

  • 通过工程原型创建的工程,默认配置中创建了三个 appender,分别指向标准输出(STDOUT)、error 输出(ERROR-APPENDER)和 info 输出(ROOT-APPENDER)。标准输出是为了保证本地运行时能将一些应用中的启动信息或者异常信息直接打印在控制台中(需要注意的是:控制台中并没有显示 SOFA 中间件的日志,中间件的日志均在指定目录的中间件日志目录下)。

  • 此工程中默认创建了两个日志相关的配置属性,分别是:

    • logging.level.com.alipay.sofa:表示应用的日志打印级别;
    • logging.path:表示应用的日志存储路径。

      这两个属性的值均配置在 config/application.properties 中,如果您想修改这两个属性,可在 config/application.properties 文件中直接修改。另外,这两个配置属性在 logback-spring.xml 中通过属性关键字转换,映射到 logging.pathlogging.level 中,如下述代码所示:

  1. <springProperty scope="context" name="logging.path" source="logging.path"/>
  2. <springProperty scope="context" name="logging.level" source="logging.level.com.alipay.sofa"/>