文档
一个 项目

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 "Healthy"
	}

	handle {
		respond "Hello World"
	}
}