如何记录PHP错误日志

记录PHP错误日志的方法:首先设置PHP的配置文件;然后将使用指定的文件记录错误报告日志;最后错误信息记录到操作系统的日志里。

如何记录PHP错误日志

记录PHP错误日志的方法:

1、使用指定的文件记录错误报告日志

如果使用自己指定的文件记录错误日志,一定要确保将这个文件存放在文档根目录之外,以减少遭到攻击的可能。

并且该文件一定要让PHP脚本的执行用户 (Web服务器进程所有者)具有写权限。假设在Linux操作系统中,将/usr/local/目录下的error.log文件作为错误日志文件,并设置 Web服务器进程用户具有写的权限。然后在PHP的配置文件中,将error_log指令的值设置为这个错误日志文件的绝对路径。

立即学习“PHP免费学习笔记(深入)”;

相关学习推荐:php编程(视频)

需要将php.ini中的配置指令做如下修改: 

error_reporting = E_ALL ;将会向PHP报告发生的每个错误 

display_errors = Off ;不显示满足上条 指令所定义规则的所有错误报告 

log_errors = On ;决定日志语句记录的位置 

log_errors_max_len = 1024 ;设置每个日志项的最大长度 

error_log = /usr/local/error.log ;指定产生的 错误报告写入的日志文件位置 

 

PHP 的配置文件按上面的方式设置完成以后,并重新启动Web服务器。这样,在执行PHP的任何脚本文件时,所产生的所有错误报告都不会在浏览器中显示,而会记 录在自己指定的错误日志/usr/local/error.log中。此外,不仅可以记录满足error_reporting所定义规则的所有错误,而且 还可以使用PHP中的error_log()函数,送出一个用户自定义的错误信息。

该函数的原型如下所示:

bool error_log ( string message [, int message_type [, string destination [, string extra_headers]] )

登录后复制

此 函数会送出错误信息到Web服务器的错误日志文件、某个TCP服务器或到指定文件中。该函数执行成功则返回TRUE,失败则返回FALSE。第一个参数 message 是必选项,即为要送出的错误信息。如果仅使用这一个参数,会按配置文件php.ini中所设置的位置处发送消息。第二个参数message_type为整 数值:0表示送到操作系统的日志中;1则使用PHP的Mail()函数,发送信息到某E-mail处,第四个参数extra_headers亦会用到;2 则将错误信息送到TCP 服务器中,此时第三个参数destination表示目的地IP及Port;3则将信息存到文件destination中。

如果以登入Oracle数据库出现问题的处理为例,该函数的使用如下所示: 


登录后复制

2、 错误信息记录到操作系统的日志里

错误报告也可以被记录到操作系统日志里,但不同的操作系统之间的日志管理有点区别。在Linux上错误语句将送往syslog,而在Windows上错误 将发送到事件日志里。如果你不熟悉syslog,起码要知道它是基于UNIX的日志工具,它提供了一个API来记录与系统和应用程序执行有关的消息。 Windows事件日志实际上与UNIX的syslog相同,这些日志通常可以通过事件查看器来查看。如果希望将错误报告写到操作系统的日志里,可以在配 置文件中将error_log指令的值设置为syslog。

具体需要在php.ini中修改的配置指令如下所示: 

error_reporting = E_ALL ;将会向PHP报告发生的每个错误 

display_errors = Off ;不显示 满足上条指令所定义规则的所有错误报告 

log_errors = On ;决定日志语句记录的位置 

log_errors_max_len = 1024 ;设置每个日志项的最大长度 

error_log = syslog ;指定产生的错误报告写入操作系统的日志里 

除了一般的错误输出之外,PHP还允许向系统syslog中发送定制的消息。虽然通过前面介绍的error_log()函数,也可以向syslog中发送定制的消息,但在PHP中为这个特性提供了需要一起使用的4个专用函数。

分别介绍如下: 

define_syslog_variables() 

在使用openlog()、syslog及closelog()三个函数之前必须先调用该函数。因为在调用该函数时,它会根据现在的系统环境为下面三个函数初使用化一些必需的常量。 

openlog() 

打开一个和当前系统中日志器的连接,为向系统插入日志消息做好准备。并将提供的第一个字符串参数插入到每个日志消息中,该函数还需要指定两个将在日志上下文使用的参数,可以参考官方文档使用。 

syslog()

该 函数向系统日志中发送一个定制消息。需要两个必选参数,第一个参数通过指定一个常量定制消息的优先级。例如LOG_WARNING表示一般的警 告,LOG_EMERG表示严重地可以预示着系统崩溃的问题,一些其他的表示严重程度的常量可以参考官方文档使用。第二个参数则是向系统日志中发送的定制 消息,需要提供一个消息字符串,也可以是PHP引擎在运行时提供的错误字符串。 

closelog()

该函数在向系统日志中发送完成定制消息以后调用,关闭由openlog()函数打开的日志连接。 

 

如果在配置文件中,已经开启向syslog发送定制消息的指令,就可以使用前面介绍的四个函数发送一个警告消息到系统日志中,并通过系统中的syslog解析工具,查看和分析由PHP程序发送的定制消息,如下所示: 

define_syslog_variables(); openlog("PHP5", LOG_PID , LOG_USER);  syslog(LOG_WARNING, "警告报告向syslog中发送的演示, 警告时间:".date("Y/m/d H:i:s"));  closelog();  ?>

登录后复制

相关学习推荐:编程视频

以上就是如何记录PHP错误日志的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2128163.html

(0)
上一篇 2025年2月24日 21:36:39
下一篇 2025年2月23日 18:01:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php如何设置站点

    php设置站点的方法:首先打开文件【httpd-vhosts.conf】并添加相关代码;然后找到文件【httpd.conf】,并把【#Include conf/】前的【#】去掉;最后设置站点名称即可。 php设置站点的方法: 1.首先打开a…

    2025年2月24日
    200
  • php如何自定义错误函数

    php自定义错误函数的方法:1、写错误处理函数,参数固定,为【$errno, $errstr】;2、设置错误的处理方式【set_error_handler()】。 php自定义错误函数的方法: 1)写一个错误处理函数,函数名自己命名,但是参…

    2025年2月24日
    200
  • php如何设置首页

    php设置首页的方法:首先找到并打开“conf/httpd.conf”文件;然后添加内容为“DirectoryIndex index.html index.php index.htm”;接着配置apache并加载PHP模块;最后重启即可。 …

    2025年2月24日
    200
  • php json_encode中文乱码如何解决

    php encode中文乱码的解决办法:首先打开相应的PHP文件;然后使用正则语句“preg_replace(“#\u([0-9a-f]{4})#ie”,”iconv(‘UCS-2BE&#82…

    2025年2月24日
    200
  • 关于修改php fpm用户的问题

    修改php fpm用户的方法:首先修改“nginx.conf”中的“user *****”;然后修改用户和用户组;接着修改“php-fpm”的配置文件;最后设置的session保存的路径即可。 推荐:《PHP视频教程》 关于nginx和ph…

    2025年2月24日
    200
  • PHP如何实现网页截图

    PHP实现网页截图的方法:首先下载CutyCapt;然后解压tar包;最后使用代码“public function index(){echo ”;echo date(‘Y-m-d H:m:s’)&#823…

    2025年2月24日
    200
  • php邮件中文乱码的解决办法

    php邮件中文乱码的解决办法:首先使用HTML编辑邮件内容;然后设置“Content-Transfer-Encoding: 8Bit”;接着发送邮件的系统名和邮件地址;最后设置接收的邮件地址即可。 推荐:《PHP视频教程》 解决PHP ma…

    2025年2月24日
    200
  • 怎么解决php遍历文件乱码的问题

    php遍历文件乱码的解决办法:首先创建一个PHP示例文件;然后把文件编码改成“GBK”;最后通过“read_all”方法遍历文件夹下所有文件即可。 推荐:《PHP视频教程》 最近面试深受打击,回到河南老家一年多生了个娃回来发现自己已经跟不上…

    2025年2月24日 编程技术
    200
  • php邮件标题乱码怎么办

    php邮件标题乱码的解决办法:首先使用【base64_encode】函数对数据进行编码;然后在标题字符串前加编码类型为【=?UTF-8?B?】;最后将文件保存成相应的编码格式即可。 推荐:《PHP视频教程》 PHP发送邮件标题乱码的解决 遇…

    2025年2月24日
    200
  • php如何删除当前目录

    php删除当前目录的方法:首先扫描一个目录内的所有目录和文件并返回数组;然后通过“deleteDir($sonDir);”方法递归删除;最后使用“@rmdir($sonDir);”方法删除目录内的子目录和文件即可。 推荐:《PHP视频教程》…

    2025年2月24日
    200

发表回复

登录后才能评论