error_log() 函数向服务器错误记录、文件或远程目标发送错误消息。它的语法
error_log(message,type,destination,headers);
参数 | 描述 |
---|---|
message | 必需。规定要记录的错误消息。 |
type |
可选。规定错误应该发送到何处。可能的值:
|
destination | 可选。规定错误消息的目标。该值由 type 参数的值决定。 |
headers |
可选。规定额外的头,比如 From、Cc 和 Bcc。该信息类型使用了 mail() 的同一个内置函数。 仅当 message_type 设置为 1 的时候使用。 应当使用 CRLF (\r\n) 来分隔多个头。 |
其实对于我们来说,日志为了简便起见,一般直接使用类型3就比较合适了,把日志文件写到自己需要的文件中。
为了示例error_log()函数的简单使用,我们个例子说明。假设我们数据库抽象类使用PEAR::DB类,现在我想在程序中记录我们的程序是否有执行错误。那么我们使用error_log()来记录我们那些SQL语句执行错误或者失败了,至少我们的PEAR::DB类提供了 DB::isError() 方法来获取某个执行结果对象是否有错误,那么我们就能够旁断是否执行某条SQL出现了错误,再来考虑是否记录日志,同时对象有个userinfo的属性,该属性记录了错误的SQL语句,那么我们可以构造这样一个函数:
function logError($object) { if(DB::isError($object)) { error_log(date("[Y-m-d H:i:s]")." -[".$_SERVER['REQUEST_URI']."] :".$object -> userinfo."\n", 3, "/tmp/php_sql_err.log"); return true; } return false; }
这个函数就是能够记录发现了错误SQL的地方,那么自动会把时间,当前页面,和错误的SQL语句信息记录到 /tmp/php_sql_err.log 文件当中,那么,当我们在调试程序的时候,发现数据提取不正确或者没有数据提取的时候,那么我们完全可以查看 /tmp/php_sql_err.log 文件来查看我们的错误页面和错误的SQL语句。
当然,我们必须在我们执行SQL查询的程序中去使用这个函数,比如我们执行一个编写一个提取新闻信息的函数:
function getNewsContent($news_id, $field="") { global $db; $result = $db->getRow("SELECT $field FROM news WHERE news_id = '$news_id'"); if (logError($result)) { return false; } return $result; }
我们在里面判断SQL是否错误,如果错误了则返回false,然后我们就可以查看日志一下,看我们的函数运行是否如我们预期想象的一样。
我们执行: tail /tmp/php_sql_err.log
能看到类似于这样的信息:
[2006-01-12 11:44:34] -[/news_list.php?news_id=1] :SELECT FROM news WHERE news_id = '1' [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version fo
r the right syntax to use near 'FROM news WHERE news_id = '1']
大致是因为我们select的时候,没有把需要提取的字段名写进去,那么我们就可以检查news_list.php文件,减产 getNewsContent ()函数法向没有传递$field参数进去,导致SQL执行错误。所以error_log()函数就帮助检查我们的SQL写的是否正确,或者是参数没有传递正确,这样大大的减轻了开发负担,想但于了对我们的程序进行了单元测试。
当然,你也可以利用error_log()函数做更多记录错误日志,方便PHP开发,这个全是由自己决定。
本次工作中使用它来记简单的log日志
<code> $address = post('address'); $group_add = explode(',',$address); $url ="/usr/local/apache/eyoung/tmp/maillog_".date("Y-m-d").".log"; foreach($group_add as $value) { /** {{{ modify by muzhaoyang -2006.12.13- 记log * 已空格分隔数据,记录的数据为写文本时间 拉票人ID 选手ID 发信地址 */ $logstr=date("H:i:s")." ".$uid." ".$star_uid." ".$value."\n"; error_log($logstr,3,$url); //}}} } </code>
以上是php error_log()函数的使用简介的详细内容。更多信息请关注PHP中文网其他相关文章!