php中的error_log中的换行符

时间:2010-06-07 06:26:50

标签: php

如何在php

中使用error_log()时插入换行符

我尝试使用<br>\n,但这些都不起作用。

7 个答案:

答案 0 :(得分:52)

在输入错误消息时使用双引号:

error_log("This is a two lined message. \nThis is line two.");

应该有用。

error_log('This is a one lined message. \nThis is the same line still.');

无效:请注意单引号。

答案 1 :(得分:25)

PHP_EOL管理多个平台上的换行符:

error_log("Error message".PHP_EOL, 3, 'error.log');

答案 2 :(得分:24)

如前所述,您可以使用tail或使用双引号将输出换行到日志文件。

无论如何,当使用linux控制台调试应用程序时,\\\\n命令会将新行显示为sed

简单的解决方案是使用\\\\n\\n替换为tail -f file | sed 's/\\n/\n/g'

{{1}}

见这个答案:
https://serverfault.com/a/126409

答案 3 :(得分:3)

我偶尔遇到这个问题,但是某些PHP解释器并不总是与\n自己公平对待。我丑陋的解决方案需要为换行添加原始ASCII代码\10,似乎可以解决问题。所以试试\n\10

error_log("\n\10\n\10".$this->db->last_query()."\n\10\n\10");

这是一个看起来很糟糕的代码,所以你可能想把它包装到你自己的函数中......但是如果你想要突出的话,它会让错误日志看起来好多了。

我也不知道为什么这样做效果更好......不在乎找不到,但是如果有人知道为什么,听到它会很酷。

答案 4 :(得分:0)

调试时,如果你想让你的错误日志行在你看日志'tail -f'时突出,我会使用这样一个小函数来使线条突出并易于阅读。

只需投入一些空白区域,以及一个常用术语,例如“CUSTOM_LOG”,以便日后使用。

highlight_error_log('Msg here');

function highlight_error_log($str){
    error_log('CUSTOM_LOG:            ' . $str . '            ');
}

答案 5 :(得分:0)

如果您的php.ini文件和函数调用中的错误日志路径均未定义,则\n\r\n将不起作用,即使在双引号中也是如此(它们将显示改为文字字符。)

您可以通过在php.ini中指定位置来解决此问题:

error_log = /var/log/php-errors.log

或在每个PHP函数调用中如下:

error_log("error message", 3, $logFileLocation);

答案 6 :(得分:0)

这是正确的答案PHP_EOL在多个平台上管理换行符:

error_log("Error message".PHP_EOL, 3, 'error.log');

https://blog.zohear.com/