PHP的error_log()和syslog()有什么区别?

15

我正在尝试决定用于记录到自定义文件的功能。

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

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

我的问题

  • 这些函数的优缺点是什么?
  • 应该选择哪一个?(为什么?
  • 如果放弃多个文件的要求会怎样?

另一个选项是将日志文件名设置为 error_log php.ini 指令(如果使用 ini_set('error_log', '/path/to/log/file') 则应该可以工作),并使用 trigger_error() 生成错误消息。这样,您将使用 PHP 级别的错误记录(而不是操作系统级别的错误记录),并且不必像使用 error_log() 函数一样指定 $destination - binaryLV
我们使用 trigger_error() 与通过 set_error_handler() 实现的自定义错误处理功能相结合,我们希望这个自定义错误处理程序以最高效的方式记录到文件中。 - Jacco
1个回答

13

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

由于您要写入多个日志,我建议使用error_log$message_type = 3,这样可以将消息添加到在$destination参数中设置的文件中。


SAPI日志处理程序是什么?https://dev59.com/pmkw5IYBdhLWcg3wXZX8 可能会有所帮助。您是否有所需的优缺点?以上内容大多是http://php.net/manual/en/function.error-log.php的摘要。 - Alastair Irvine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接