【发布时间】:2011-09-18 13:53:46
【问题描述】:
我正在尝试决定使用什么功能来记录到自定义文件。
背景
我们有几个 PHP 进程,既作为 Apaches (mod_php) 运行,也作为 Deamons (CLI,forked) 运行。我希望能够为每个要写入的进程/任务指定一个日志文件。对于作为守护进程的 Apache 进程,多个进程将写入同一个文件。
选项
PHP 提供error_log() 和syslog()。两者似乎都提供或多或少相同的功能。
我的问题
- 这些功能的优缺点是什么?
- 选择哪一个? (为什么?)
- 如果我放弃多个文件的要求怎么办?
【问题讨论】:
-
另一种选择是将日志文件名设置为
error_logphp.ini 指令(我认为如果用作ini_set('error_log', '/path/to/log/file')会起作用)并使用trigger_error()生成错误消息。这样,您将使用 PHP 级别的错误日志记录(而不是操作系统级别的错误日志记录),并且不必像使用error_log()函数那样指定$destination。 -
我们将
trigger_error()与set_error_handler()的自定义错误处理功能结合使用,我们希望这个自定义错误处理程序以最有效的方式记录到文件中。
标签: php error-logging syslog