【问题标题】:PHP Error log has extra carriage returns?PHP错误日志有额外的回车?
【发布时间】:2013-06-26 05:38:27
【问题描述】:

我使用 WAMP,在我的 php.ini 文件中有:

error_log = "d:/php_error.log"

当我打开那个文件时,我看到:

[26-Jun-2013 05:35:57 UTC] PHP Warning:  Division by zero in D:\....

[26-Jun-2013 05:35:57 UTC] PHP Stack trace:

[26-Jun-2013 05:35:57 UTC] PHP   1. {main}() D:\....

[26-Jun-2013 05:35:57 UTC] PHP   2. Zend_Application->run()...

etc

问题是有额外的回车。 IE。我希望有这个:

[26-Jun-2013 05:35:57 UTC] PHP Warning:  Division by zero in D:\....
[26-Jun-2013 05:35:57 UTC] PHP Stack trace:
[26-Jun-2013 05:35:57 UTC] PHP   1. {main}() D:\....
[26-Jun-2013 05:35:57 UTC] PHP   2. Zend_Application->run()...
etc

这可能是什么原因造成的?

更新

我将“error_append_string”和“error_prepend_string”更改为“”。我也查了一下,一行后面的条目是:

 [LINE]CR
 CRLF
 [LINE]CR
 etc

即回车和换行符号...

【问题讨论】:

  • 你的 php.ini 中有 error_append_string:www.php.net/manual/en/errorfunc.configuration.php?如果是,它的价值是什么?
  • 你用什么工具打开文件?你能用十六进制编辑器看看行尾字符是什么吗?
  • 我用更多信息更新了这个问题。
  • 我不知道,但是 WAMP 可能是一个修改过的 php 源(根据源,PHP_EOL 是 \r\n 而不是 \r\r\n)?据我在 php 源代码中看到的,error_append/prepend_string 不会影响 error_log。
  • 您使用什么编辑器查看日志文件?有一些错误将 \r 解释为新行。

标签: php


【解决方案1】:

这可能与 syslog 搞砸了你有关。所以 PHP 添加了CR,然后在处理log "line\n" 请求时,Windows 的 syslog 进入并在其中添加了一个额外的CRLF

查看这些相关问题,其中用户在其他操作系统下遇到换行和错误日志的其他问题:

PHP error_log outputting line breaks as literal "\n" strings on Mac OSX

PHP error log and newline chars

特别是,当运行 Apache 的用户没有写入文件的权限,或者您的 php.ini 中的 error_log 指令未设置(或定义为 syslog)时,可能会发生这种情况。更多详情:http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log

至于日志文件本身,你可以尝试给它777权限,或者自己创建文件而不是让系统创建它(反之亦然)。一些用户报告每个调整都有不同的问题/解决方案。

【讨论】:

    【解决方案2】:

    不要设置error_prepend_stringerror_append_string,而是通过评论完全禁用它们(;):

    ;error_prepend_string 
    

    ;error_append_string
    

    【讨论】:

    • 它们以前被禁用,U 仍然得到回车。
    【解决方案3】:

    您可能需要检查的值

    error_prepend_string 
    

    error_append_string
    

    在您的 .ini 文件上。

    【讨论】:

    • 我将它们都设置为“”(空白),它仍在发生。
    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 2021-06-19
    • 2012-11-26
    • 2013-09-11
    • 1970-01-01
    相关资源
    最近更新 更多