Skip to content

日志 ​

log 块用于配置 sing-box 的日志器:严重级别、输出位置、是否带时间戳,以及是否完全禁用日志。

选项 ​

字段类型默认值允许值描述
disabledboolfalsetrue | false为 true 时 sing-box 安装空操作日志工厂,无论其他字段如何均不写出。
levelstringtracetrace | debug | info | warn | warning | error | fatal | panic最低严重级别。空字符串按默认处理;"warn" 与 "warning" 是等价别名。
outputstring(stderr)<empty> | stderr | stdout | <file path>日志输出位置。空值默认 stderr;"stderr" 与 "stdout" 是字面量流名;其他取值视为文件路径。
timestampboolfalsetrue | false为 true 时每行前会带形如 "-0700 2006-01-02 15:04:05" 的时间戳;要在文件输出中看到时间戳必须开启。

源码: option/options.go:69-75 · 锚定版本 v1.14.2 (af6e64c)

示例 ​

默认行为(配置中完全省略 log —— 等价于 {}):

json
{
  "log": {}
}

部署场景下让 sing-box 安静一点:

json
{
  "log": {
    "level": "warn",
    "timestamp": true,
    "output": "/var/log/sing-box.log"
  }
}

完全禁用日志:

json
{
  "log": {
    "disabled": true
  }
}

说明 ​

  • level 留空时的默认值是 trace(最啰嗦的级别),而不是 info —— 见 log/log.go:67-69。生产配置通常应显式设置 level。
  • output 中 "stderr" 与 "stdout" 是字面量流名;其他非空值视为文件路径(log/log.go:32-45)。
  • 写文件时颜色被强制关闭,且只有 timestamp: true 时才带时间戳。输出到 stderr / stdout 时,未设 timestamp 的行带有自启动以来的秒数计数(如 INFO[0012]);timestamp: true 则改为完整日期时间 —— 见格式化器配置 log/log.go:46-52。

源码: option/options.go:69-75 · v1.14.2 (af6e64c)

由 Argsment 出品的 Core Tutorial