PHP-FPM我如何抑制通知日志级别并仍然捕获警告日志/etc/PHP-FPM.conf


PHP-FPM how do I suppress notice log level and still capture warning log /etc/php-fpm.conf

我很难弄清楚如何在php-fpm中抑制通知级别的日志事件,例如:

[07-Feb-2015 10:06:48] NOTICE: [pool www] child 19591 exited with code 0 after 52040.698062 seconds from start
[07-Feb-2015 10:06:49] NOTICE: [pool www] child 17234 started
[07-Feb-2015 10:06:50] NOTICE: [pool www] child 19822 exited with code 0 after 52014.845635 seconds from start
[07-Feb-2015 10:06:50] NOTICE: [pool www] child 17261 started
[07-Feb-2015 10:07:33] NOTICE: [pool www] child 17784 exited with code 0 after 52246.014015 seconds from start

同时仍然捕获警告类型的日志事件,例如php中的errorlog()函数将创建该日志事件。记录以下事件:

 [07-Feb-2015 11:46:44] WARNING: [pool www] child 32465 said into stderr: "NOTICE: PHP message: Array"
 [07-Feb-2015 11:46:44] WARNING: [pool www] child 32465 said into stderr: "("
 [07-Feb-2015 11:46:44] WARNING: [pool www] child 32465 said into stderr: "     [6] => 363"
 [07-Feb-2015 11:46:44] WARNING: [pool www] child 32465 said into stderr: ")"
 [07-Feb-2015 11:46:44] WARNING: [pool www] child 32465 said into stderr: ""

在php.net中,它声明变量log_level访问以下字符串类型以调整捕获的日志级别:

错误日志级别。可能的值:alert、error、warning、notice、debug。默认值:notice。

http://php.net/manual/en/install.fpm.configuration.php

因此,自然地,在我的/etc/php-fpm.conf文件中,我将配置值设置为:log_level:警告和服务重启。然后,我没有得到上面描述的日志事件。

我找不到任何地方的文档指示每个log_level选项的作用,而且似乎除了通知之外的任何东西都会抑制一切。

这是在centOS机器上使用php-fpm 5.4或5.5。

我也遇到了同样的问题。我通过在相应的php.ini中更改error_reporting来消除通知。

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE

这意味着:报告除弃用、严格和通知类型之外的所有错误。

日志级别似乎是错误的调整位置。