PHP error_log()将错误信息写入一个文件(定义和用法)


Posted in PHP onOctober 25, 2013

在php程序编写中,养成写入log文件的编程习惯,是一个很好的编程习惯,程序员都应该学会这种编程思想,不要太浮躁。前期编程的不严谨,往往会带来后期维护和调式的困难,付出的时间和精力将会更多。
error_log() 是发送错误信息到某个地方的一个函数,在程序编程中比较常见,尤其是在程序调试阶段。
本文将用实例讲解一下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 ...
上述错误的出现,是因为文件没有写权限,开启该目录的文件写权限即可。
(2)写入到log文件中的信息不能换行
使用error_log()写入log文件,会发现文字是没有换行的,可以对以上代码做如下改进:
<?php
$str="这是条错误信息。\r\n";
error_log($str,3,'errors.log');
?>

注意$str,用的是双引号(php单引号和双引号的区别),还在字符串结尾加上了\r\n。这跟第一个实例那个写法是不同的。
下面对error_log()函数做一些介绍
格式
bool error_log ( string $message [, int $message_type=0 [, string $destination [, string $extra_headers ]]] )
把错误信息发送到 web 服务器的错误日志,或者到一个文件里。
message     应该被记录的错误信息。
message_type
设置错误应该发送到何处。使用 操作系统的日志机制或者一个文件,取决于 error_log 指令设置了什么。可能的信息类型有以下几个:
 0 message 发送到 PHP 的系统日志。 这是个默认的选项。iis服务器运行调试php程序错误信息生成log文件在哪里。
 1 message 发送到参数 destination 设置的邮件地址。 第四个参数 extra_headers 只有在这个类型里才会被用到。
 2 不再是一个选项。
 3 message 被发送到位置为 destination 的文件里。 字符 message 不会默认被当做新的一行,而是追加到行末。
 4 message 直接发送到 SAPI 的日志处理程序中。
destination 目标。它的含义描述于以上,由 message_type 参数所决定。
extra_headers 额外的头。当 message_type 设置为 1 的时候使用。 该信息类型使用了 mail() 的同一个内置函数。

返回值   成功时返回 TRUE, 或者在失败时返回 FALSE。

再来个例子

发送一封带有自定义错误的电子邮件:
<?php
$test=2; if ($test>1) {
error_log("A custom error has been triggered", 1,"someone@example.com","From: webmaster@example.com"); 
} 
?>

输出:
A custom error has been triggered
PHP 相关文章推荐
一个oracle+PHP的查询的例子
Oct 09 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
PHP的array_diff()函数在处理大数组时的效率问题
Nov 27 PHP
二招解决php乱码问题
Mar 25 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
PHP 构造函数和析构函数原理与用法分析
Apr 21 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 #PHP
php中并发读写文件冲突的解决方案
Oct 25 #PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 #PHP
学习php分页代码实例
Oct 24 #PHP
获取URL文件名后缀
Oct 24 #PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 #PHP
php 修改、增加xml结点属性的实现代码
Oct 22 #PHP
You might like
PHP伪静态页面函数附使用方法
2008/06/20 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
php目录操作实例代码
2014/02/21 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
php5与php7的区别点总结
2019/10/11 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
如何在PHP中生成随机数
2020/06/04 PHP
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
sails框架的学习指南
2014/12/22 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Python合并多个装饰器小技巧
2015/04/28 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
详解python中的装饰器
2018/07/10 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Python threading的使用方法解析
2019/08/28 Python
numpy库reshape用法详解
2020/04/19 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
大学生校园创业计划书
2014/02/08 职场文书
安全生产承诺书
2014/03/26 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
出国留学单位推荐信
2015/03/26 职场文书
2016年元旦致辞
2015/08/01 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
行政后勤人员工作计划应该怎么写?
2019/08/16 职场文书
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers