如何在PHP中写入错误日志文件

Vas*_*ant 66 php reference

我想在执行PHP代码时将消息写入错误日志文件.

我正在尝试使用PHP error_log()函数Docs.

但它对我不起作用.

sus*_*tus 104

如果您不想更改php.ini文件中的任何内容,根据PHP文档,您可以执行此操作.

error_log("Error message\n", 3, "/mypath/php.log");
Run Code Online (Sandbox Code Playgroud)

第一个参数是要发送到日志的字符串.第二个参数3意味着期望文件目的地.第三个参数是日志文件路径.

  • 在`php.ini`文件中检查error_log配置设置.此设置将保存写入错误的文件名.例如`error_log"log_file_name"`.有关详细信息,请访问http://php.net/manual/en/function.error-log.php (3认同)
  • 我只是在执行 `error_log("Error message\n")` 但 `/var/log/httpd/error_log` 中没有出现任何内容。:( 知道为什么吗? (2认同)

小智 36

你可以简单地使用:

error_log("your message");
Run Code Online (Sandbox Code Playgroud)

默认情况下,消息将发送到php系统记录器.

  • 如果您使用此方法,请确保已启用错误日志记录并且您取消注释php.ini中的`error_log`指令. (10认同)
  • -1提出问题的一年后,OP已经说过他尝试了什么,但对他没有用.此外,在这个答案前一年创建的嫌疑人已经有了更好的答案. (5认同)
  • @ToolmakerSteve他实际上并没有说他如何使用它,只是他在尝试使用它。公认的(也是非常好的)答案也使用`error_log` ... (2认同)

Pup*_*pil 14

我们都知道PHP保存php_errors.log文件中的错误.

但是,该文件包含大量数据.

如果我们要记录我们的应用程序数据,我们需要将其保存到自定义位置.

我们可以在error_log函数中使用两个参数来实现这一点.

http://php.net/manual/en/function.error-log.php

我们可以使用:

error_log(print_r($v, TRUE), 3, '/var/tmp/errors.log');
Run Code Online (Sandbox Code Playgroud)

哪里,

print_r($v, TRUE) :将$ v(数组/字符串/对象)记录到日志文件中. 3:将日志消息放入第三个参数中指定的自定义日志文件.

'/var/tmp/errors.log':自定义日志文件(此路径适用于Linux,我们可以根据操作系统指定其他路径).

或者,你可以使用 file_put_contents()

file_put_contents('/var/tmp/e.log', print_r($v, true), FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)

哪里:

'/var/tmp/errors.log':自定义日志文件(此路径适用于Linux,我们可以根据操作系统指定其他路径). print_r($v, TRUE) :将$ v(数组/字符串/对象)记录到日志文件中.FILE_APPEND:指定是否附加到文件的常量参数(如果文件不存在),如果文件不存在,将创建新文件.