1. 日志配置

平台参考了 Spring Boot 的日志配置,也是配置在 application.yml 的 “logging” 中。

默认配置如下:

logging:
  level: info # 日志级别配置
  pattern: "${date} ${level} --- [${logger}] : ${msg}" # 日志格式全局配置
  date: # 日志时间格式全局配置
    year: "numeric"
    month: "long"
    day: "2-digit"
    hour: "2-digit"
    minute: "2-digit"
    second: "2-digit"
    hour12: false
  ConsoleAppender: # ConsoleAppender日志输出器类的全局配置
    colors: # 日志级别颜色配置
      debug: "#409eff"
      info: "#909399"
      warn: "#E6A23C"
      error: "#F56C6C"
      success: "#67C23A"
  appenders: # 日志输出器实例列表配置
  loggers: # 日志记录器实例列表配置

1.1. 日志级别(logging.level)

日志级别配置支持字符串和对象格式配置。

当配置为字符串时,意味着仅配置了根日志级别。默认根日志级别为:INFO。

logging:
  level: info

等同于

logging:
  level:
    root: info

当配置为对象时,可以为不同的日志记录器配置不同的日志级别。我们以平台内核的启动日志为例:

logging:
  level:
    core: debug # 配置内核的日志级别

此时就能看到平台内核的启动过程。

平台内核启动日志

如果只想看到路由管理器的初始化过程,可以按如下配置:

logging:
  level:
    core: info # 配置内核的日志级别
    core.manager.router-manager: debug # 配置内核中路由管理器的日志级别

此时就只能看到路由管理器的初始化过程,内核中其他组件的日志将不会输出。

路由管理器初始化日志

注意:日志记录器名称推荐采用类似java的包名的格式 “<模块名>.<子模块>.<组件名>

  • 便于根据日志记录器名称快速定位日志来源
  • 子模块会继承父模块的日志级别,可以配置整个模块的日志级别,避免重复为模块下组件单独配置

1.2. 日志格式(logging.pattern)

日志格式配置支持ES6的模版表达式,默认为:

logging:
  pattern: "${date} ${level} --- [${logger}] : ${msg}"

其中:

  • date:日志时间,可以通过 “logging.date” 配置时间格式
  • level:日志级别
  • logger:日志记录器名称
  • msg:日志信息

1.3. 日志时间格式(logging.date)

日志时间支持本地化,可以根据浏览器或者NodeJs语言环境,输出本地化的时间。 当浏览器语言设置为英语时,路由管理器的初始化日志如下:

平台内核启动日志-英语

另外还可以配置时间格式,具体配置可以参考JS的日期类型的toLocaleString方法参数。

1.4. 日志输出器类配置

不同的日志输出器类有各自不同的全局配置,如:内置的ConsoleAppender日志输出器类可以配置日志级别的颜色。

注意:

  • 一定要用日志输出器的类名(大小写敏感)
  • 日志输出器类依然可以配置自己的日志格式和日志时间格式。如果未配置,则默认采用全局配置

1.5. 日志输出器实例列表配置(logging.appenders)

用于配置静态初始化的日志输出器实例。

logging:
  appenders:
    - name: fooAppender
      class: ConsoleAppender
      config:
        pattern: "xxx"
        date:
        colors:
      isDefault: false # 是否是默认的日志输出器(可选,默认为:false/不是)

这样就会初始化一个名为 “fooAppender” 的ConsoleAppender类型的日志输出器

注意:loggerFactory动态创建日志记录器时会引用默认的日志输出器。如果没有没配置,则会引用内置的名为 “console” 的ConsoleAppender类型的日志输出器。

1.6. 日志记录器实例列表配置(logging.loggers)

用于配置静态初始化的日志记录器实例。

logging:
  appenders:
    - name: fooLogger
      level: error
      appenderRef: fooAppender
    - name: barLogger
      level: info
      appenderRef: console

这样就会初始化一个名为 “fooLogger” 的日志级别为 “error” 的日志记录器和一个名为 “barLogger” 的日志级别为 “info” 的日志记录器。

注意:不同的日志记录器可以引用不同的日志输出器,这样就能实现日志的分包分流,将不同模块的日志输出到不同的位置。

Copyright ©zhoujianhui all right reserved,powered by Gitbook更新时间: 2024-12-06 16:19:31

results matching ""

    No results matching ""