v2中文文档
项目

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