Skip to content

日志配置

日志配置定义系统输出日志的方式。

说明

日志配置文件是一个 YAML 文件,文件名为log.yaml,它的内容是一个 YAML 对象,包含以下字段:

console:

控制台输出相关配置,它有 4 个子字段,分别是:

  1. enable:
    是否控制台输出,默认值:false
  2. level:
    日志输出级别,可选值有:DEBUG,INFO,WARN,ERROR,PANIC
  3. caller:
    是否输出调用的文件和行号,默认值:false
  4. absPath:
    是否输出绝对路径,默认值:false

file:

文件输出相关配置,它有 7 个子字段,分别是:

  1. enable:
    是否文件输出,默认值:false
  2. level:
    日志输出级别,可选值有:DEBUG,INFO,WARN,ERROR,PANIC
  3. caller:
    是否输出调用的文件和行号,默认值:false
  4. path:
    日志文件存放目录,不存在则自动创建,默认值:./logs
  5. maxSize:
    单个日志文件大小,单位为 M,它是一个正整数值,默认值:100
  6. maxAge:
    日志文件保留天数,它是一个正整数值或者 0,默认值:0,表示不根据日志文件存留时间删除日志文件
  7. maxDirSize:
    日志文件总大小,单位为 M,它是一个正整数值,默认值:0,表示不根据日志文件总大小删除日志文件

特别的,如果 MaxDirSize 和 MaxAge 都为 0,则不会删除旧的日志文件。

panic:

panic 时堆栈信息输出相关配置,它有 3 个子字段,分别是:

  1. enable:
    是否记录 panic 时堆栈信息,默认值:false
  2. path:
    panic 时堆栈信息输出目录,不存在则自动创建,默认值:./panic_stacks
  3. maxCount:
    panic 时堆栈信息文件最大数量,超过则删除最旧的,0 表示不限制,默认值:0

important:

重要日志配置相关配置,它有 7 个子字段,分别是:

  1. enable:
    是否开启重要日志单独记录,默认值:false
  2. level:
    日志输出级别,可选值有:DEBUG,INFO,WARN,ERROR,PANIC
  3. caller:
    是否输出调用的文件和行号,默认值:false
  4. path:
    日志文件存放目录,不存在则自动创建,默认值:./logs
  5. maxSize:
    单个日志文件大小,单位为 M,它是一个正整数值,默认值:100
  6. maxAge:
    日志文件保留天数,它是一个正整数值或者 0,默认值:0,表示不根据日志文件存留时间删除日志文件
  7. maxDirSize:
    日志文件总大小,单位为 M,它是一个正整数值,默认值:0,表示不根据日志文件总大小删除日志文件

特别的,如果 MaxDirSize 和 MaxAge 都为 0,则不会删除旧的日志文件。

示例

一个完整日志配置文件内容如下:

yaml
console:
   enable: true #是否控制台输出
   level: INFO #控制台输出日志级别
   caller: true #是否输出调用的文件和行号
   absPath: false #控制台输出绝对路径
file:
   enable: true #是否文件输出
   level: INFO #文件输出级别
   caller: true #是否输出调用的文件和行号
   path: ./logs #文件路径 不存在则自动创建
   maxSize: 10 # 单个日志文件大小限制,单位为 M
   maxAge: 0 #日志文件最大保存时间,单位为天
   maxDirSize: 100 #日志目录总大小限制,单位为 M
panic:
   enable: true #是否记录 panic 时堆栈信息
   path: ./panic_stacks #panic 时堆栈信息输出目录,不存在则自动创建
   maxCount: 10 # panic 时堆栈信息文件最大数量,超过则删除最旧的,0 表示不限制
important: #重要日志配置
   enable: true #是否开启重要日志单独记录
   level: INFO #文件输出级别
   caller: true #是否输出调用的文件和行号
   path: ./logs #文件路径 不存在则自动创建
   maxSize: 10 # 单个日志文件大小限制,单位为 M
   maxAge: 0 #日志文件最大保存时间,单位为天
   maxDirSize: 100 #日志目录总大小限制,单位为 M