日志
log 块用于配置 Xray 的两条日志流(access 与 error),并可选地启用 DNS 查询日志与 IP 脱敏。
选项
| 字段 | 类型 | 默认值 | 允许值 | 描述 |
|---|---|---|---|---|
access | string | console | <file path> | none | 访问日志的输出位置。留空(或不设置)写入控制台;"none" 关闭访问日志;其他取值一律视为文件路径。 |
error | string | console | <file path> | none | 错误日志的输出位置。语义与 access 相同:留空 = 控制台,"none" = 关闭,其他 = 文件路径。 |
loglevel | string | warning | debug | info | warning | error | none | 错误日志的最低严重级别。取值 "none" 会同时强制关闭访问日志。 |
dnsLog | bool | false | true | false | 为 true 时,路由引擎解析的每一次 DNS 查询都会写入访问日志。 |
maskAddress | string | (off) | full | half | quarter | /v4mask+/v6mask | 对日志中的客户端 / 目的 IP 进行脱敏。"full" = /0+/0,"half" = /16+/32,"quarter" = /8+/16;也可显式给出形如 "/16+/64" 的掩码对。 |
源码: infra/conf/log.go:18-24 · 锚定版本 v26.6.1 (94ffd50)
示例
默认 warning 级别下的控制台输出:
json
{
"log": {
"loglevel": "warning"
}
}把两条流分别写入文件,记录每一次 DNS 查询,并把 IP 脱敏到 /16+/32:
json
{
"log": {
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log",
"loglevel": "info",
"dnsLog": true,
"maskAddress": "half"
}
}完全关闭日志:
json
{
"log": {
"loglevel": "none"
}
}说明
access与error在LogConfig.Build(infra/conf/log.go:36-47)中共享同一段 "none / empty / path" 判定;"none"是文档化的关闭开关 —— 其他任何非空字符串都会被当作 文件路径,不会 被解释为级别关键字。loglevel: "none"是特例:它在静默错误流之外,还会强制把 两条 流一并关闭(infra/conf/log.go:57-59)。maskAddress在配置解析阶段不做枚举校验。未知取值会进入app/log/log.go:177-193中的自定义掩码对解析器;那里若失败,会作为 启动错误抛出。
源码: infra/conf/log.go:18-24 · v26.6.1 (94ffd50)
