如何开启PHP日志功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何开启PHP日志功能?相关的知识,希望对你有一定的参考价值。

项目中需要跟进php的日志记录,但是好像只能开启错误日志,平时的日志怎么记录下来呢?急急急!!
系统是windows,服务器是nginx

在php编程中,对于一些访问没有明显错误提示的php页面,可以通过error_log来做进一步的判定。
但出于种种原因,有些服务器并没有开启PHP的error_log功能。
测试或其它需要时,可以打开一下,方法如下。
编辑php.ini,将log_errors设置为on:

log_errors = On

然后,重启apache即可。
如成功开启,就可以跟踪到对应的错误提示:

[Mon Sep 24 16:57:01 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:02 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:03 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line 2
[Mon Sep 24 16:57:04 2012] [error] [client 218.5.80.210] PHP Warning: fsockopen() has been disabled for security reasons in /home/bccgi-bin/fsockopen.php on line
另外,注意在Windows环境下,除了将log_errors设置为on外,还需要定义error_log的路径及文件名:

error_log = d:/temp/error.log
(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)
IIS没有error_log的概念,所以需要另外定义。追问

"(此目录需要授予php标识用户的修改权限,否则日志文件无法生成)"这句话不理解什么意思。

参考技术A 开启步骤如下:
1. 打开php.ini文件。
以ubuntu为例,这个文件在: /etc/php5/apache2 目录下为例。
2. 搜索并修改下行,把Off值改成On
display_errors = Off
3. 搜索下行
error_reporting = E_ALL & ~E_NOTICE
或者搜索:
error_reporting = E_ALL & ~E_DEPRECATED
修改为
error_reporting = E_ALL | E_STRICT
4. 修改Apache的 httpd.conf,
以Ubuntu 为例, 这个文件在:/etc/apache2/ 目录下,这是一个空白文件。
添加以下两行:
php_flag display_errors on
php_value error_reporting 2039
5. 重启Apache,就OK了。
重启命令: :sudo /etc/init.d/apache2 restart.本回答被提问者和网友采纳

以上是关于如何开启PHP日志功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何开启windows mysql日志与查询功能

如何动态开启mysql的慢查询日志记录

PHP如何开启curl

mysql中如何开启binlog?开启二进制日志文件?binary log?

如何使得 HTTP 请求记录在 Domino 的日志中

日志-php-fpm慢日志查询