首页 > 编程 > PHP > 正文

PHP用error_log函数将错误信息记录日志供调试维护参考

2020-03-22 17:30:51
字体:
来源:转载
供稿:网友
  • 在php程序编写中,养成写入log文件的编程习惯,是一个很好的编程习惯,程序员都应该学会这种编程思想,不要太浮躁。前期编程没有日志记录,往往会带来后期维护和调式的困难,付出的时间和精力将会更多。

    error_log()是发送错误信息到某个地方的一个html' target='_blank'>PHP函数,在程序编程中比较常见,尤其是在程序调试阶段。

    本文将用实例讲解一下error_log()这个函数的用法,以及一些需要注意的问题。


    <?php$str='这是条错误信息。';error_log($str,3,'errors.log');?>

    上述是最常用的error_log()例子,它的作用是把一条信息写入errors.log这个文件里,这个文件如果不存在则自动创建。在这个例子中,我们看到有一个参数“3”,注意这个数字“3”不能更改也不能去掉。

    下面列举一下使用error_log()这个函数的过程中可能出现的问题:

    (1)程序报错提示:Warning: error_log() [function.error-log]: failed to open stream: Permission denied in ...on line ...
    上述错误的出现,是因为文件没有写权限,开启该目录的文件写权限即可。

    (3)写入到log文件中的信息不能换行
    使用error_log()写入log文件,会发现文字是没有换行的,可以对以上代码做如下改进:


    <?php$str="这是条错误信息。/r/n";error_log($str,3,'errors.log');?>

    注意$str,用的是双引号(php单引号和双引号的区别),还在字符串结尾加上了/r/n。这跟第一个实例那个写法是不同的。

    通过 PHP手册,我们可以知道,该函数可以向服务器、文件或远程目标发送一个错误日志。
    它接受四个参数:
    1、message:必需。要记录的错误消息。

    2、message_type:可选。规定错误记录的类型。
    可能的记录类型:
    0 – 默认。根据在php.ini 文件中的error_log配置,错误被发送到服务器日志系统或文件。
    1 – 错误被发送到destination参数中的邮件地址。只有该类型使用 headers 参数。
    例如:error_log("this is a test string",1,"admin@4u4v.net","From:4u4v@163.com");
    2 – 通过PHP debugging 连接来发送错误。该选项只在 PHP 3 中可用。
    3 – 错误发送到指定文件中。
    示例:error_log("this is a test string",3,"/home/www/log/error_log");

    3、destination:可选。规定向何处发送错误消息。该参数的值依赖于 “type” 参数的值。

    4、extra_headers:可选。只在 “type” 为 1 时使用。
    规定附加的头部,比如 From, Cc 以及 Bcc。由 CRLF (/r/n) 分隔。

    注释:在发送电子邮件时,必须包含 From 头部。可以在php.ini文件中或者通过此参数设置。

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表