【问题标题】:PHP's error_log() vs syslog()PHP error_log() 与 syslog()
【发布时间】:2011-09-18 13:53:46
【问题描述】:

我正在尝试决定使用什么功能来记录到自定义文件。

背景
我们有几个 PHP 进程,既作为 Apaches (mod_php) 运行,也作为 Deamons (CLI,forked) 运行。我希望能够为每个要写入的进程/任务指定一个日志文件。对于作为守护进程的 Apache 进程,多个进程将写入同一个文件。

选项
PHP 提供error_log()syslog()。两者似乎都提供或多或少相同的功能。

我的问题

  • 这些功能的优缺点是什么?
  • 选择哪一个? (为什么?
  • 如果我放弃多个文件的要求怎么办?

【问题讨论】:

  • 另一种选择是将日志文件名设置为error_log php.ini 指令(我认为如果用作ini_set('error_log', '/path/to/log/file') 会起作用)并使用trigger_error() 生成错误消息。这样,您将使用 PHP 级别的错误日志记录(而不是操作系统级别的错误日志记录),并且不必像使用 error_log() 函数那样指定 $destination
  • 我们将trigger_error()set_error_handler() 的自定义错误处理功能结合使用,我们希望这个自定义错误处理程序以最有效的方式记录到文件中。

标签: php error-logging syslog


【解决方案1】:

syslog 将消息发送到 OS 记录器,而 error_log 有多个选项,可发送到 OS 记录器、电子邮件、文件或 SAPI 日志记录处理程序,如文档中所述。

既然你说你想写多个日志,我推荐error_log$message_type = 3,这样你就可以将消息添加到$destination 参数中设置的文件中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
相关资源
最近更新 更多