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 ]]] )
其中第一个参数是要输出的日志, 第二个参数是输出的方式, 一共有四种方式, 分别是:
0 | message 发送到 PHP 的系统日志,使用 < br ztid="40" ow="0" oh="0"> 操作系统的日志机制或者一个文件,取决于 < br ztid="41" ow="0" oh="0"> 指令设置了什么。 这是个默认的选项。 |
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,
- "[email protected]");
- }
- // 调用 error_log() 的另一种方式:
- error_log("You messed up!", 3, "/var/tmp/my-errors.log");
- ?>