文档
一个 项目

log_name

在使用 log 指令 编写访问日志时,覆盖用于该请求的记录器名称。

当你希望根据某些条件(例如请求路径或方法)将请求日志记录到不同的文件时,此指令非常有用。

可以指定多个记录器名称,从而使该请求的日志被推送到多个匹配的记录器。

这通常与 log 指令的 no_hostname 选项配合使用,后者可阻止记录器与站点区块的任何主机名关联,使得只有设置了 log_name 的请求会将日志推送到该记录器。

语法

log_name [<matcher>] <names...>

示例

你可能希望将请求记录到不同的文件,例如你可能希望将健康检查记录到与主访问日志分开的文件中。

log 中使用 no_hostname 可防止记录器与站点区块的任何主机名关联(此处即 localhost),因此只有将 log_name 设置为该记录器名称的请求才会收到日志。

localhost {
	log {
		output file ./caddy.access.log
	}

	log health_check_log {
		output file ./caddy.access.health.log
		no_hostname
	}

	handle /healthz* {
		log_name health_check_log
		respond "健康"
	}

	handle {
		respond "你好,世界"
	}
}