Heim >php教程 >php手册 >PHP日志记录方法

PHP日志记录方法

WBOY
WBOYOriginal
2016-06-06 20:12:411058Durchsuche

PHP一直被认为是一种上不了台面的语言,主要是因为它大量的依靠各种函数。但事实上PHP也是网站中使用最广的语言,这跟它的简单方便有关。相比起其他网站语言来说,PHP没有自己的server,需要依赖Apache等服务器,如果你使用Tomcat,你就会明显感觉到PHP少了

PHP一直被认为是一种上不了台面的语言,主要是因为它大量的依靠各种函数。但事实上PHP也是网站中使用最广的语言,这跟它的简单方便有关。相比起其他网站语言来说,PHP没有自己的server,需要依赖Apache等服务器,如果你使用Tomcat,你就会明显感觉到PHP少了一个后台控制台,在Tomcat的控制台里你可以事实看到程序输出的日志信息。而PHP就缺少了这种能力,当你遇到在开发PHP程序时,需要实时看到后台打印出日志时,我想你的愿望很难实现。一种变通的方案是将日志出处到一个文件里。PHP里提供了一个error_log(),能帮助你快捷的将日志输出到指定的文件里。

这个函数的接口描述如下:

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

其中第一个参数是要输出的日志,第二个参数是输出的方式,一共有四种方式,分别是:

error_log() 日志类型
0 message 发送到 PHP 的系统日志,使用
操作系统的日志机制或者一个文件,取决于
error_log 指令设置了什么。
这是个默认的选项。
1 message 发送到参数 destination
设置的邮件地址。
第四个参数 extra_headers 只有在这个类型里才会被用到。
2 不再是一个选项。
3 message 被发送到位置为 destination 的文件里。
字符 message 不会默认被当做新的一行。
4 message 直接发送到 SAPI 的日志处理程序中。

我们最常用的是输出到日志文件里,就是3.

下面是一个用法的例子:

<?php // 如果无法连接到数据库,发送通知到服务器日志
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}
// 如果用尽了 FOO,通过邮件通知管理员
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}
// 调用 error_log() 的另一种方式:
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn