如何简化nginx错误日志?

如何简化nginx错误日志?

我想简化 nginx 错误日志,但没有成功。我在 index.php 中执行此操作:

error_log('abc');

我收到此错误:

2016/08/22 16:11:57 [error] 5267#0: *4 FastCGI sent in stderr: "PHP message: abc" while reading response header from upstream, client: 192.168.1.12, server: domain.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "domain.com", referrer: "http://domain.com/"

查看 nginx 错误文件时:

tail -f /var/log/nginx/error.log

我尝试编辑 /etc/nginx/nginx.conf + 添加

log_format vhosts 'test';

在 http{ 部分,但错误消息仍然相同。我只想在 error.log 文件中获取“abc”。

谢谢

答案1

log_formataccess_log。例如:

tail -f /var/log/nginx/error.log | awk '{print $12}'

可能会有效果,但只有当“abc”是非空白字符串时才有效。

答案2

您不能像这样简化错误日志。

nginx通过与应用服务器软件(本例中为PHP)之间使用的FastCGI接口接收错误信息。

2016/08/22 16:11:57 [error] 5267#0: *4 FastCGI sent in stderr:是 nginx 写入以指示时间戳的部分error.log,并且以下错误消息来自 FastCGI 接口。

"PHP message: abc"是PHP自己发送的消息。

while reading response header from upstream, client: 192.168.1.12, server: domain.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "domain.com", referrer: "http://domain.com/"是nginx添加的,用来提示错误的其他信息。

当设置为 3 时,您可以使用 PHPerror_log()函数的$destination参数将错误写入日志文件。message_type但是,除了确切的测试之外,可能还包含其他文本。在这种情况下,您可以随时打开一个新文件并通过 PHP 写入。也许您想为此实现自己的日志记录函数。

相关内容