簡體   English   中英

php中的error_log中的換行符

[英]newline in error_log in php

如何在php中使用error_log()時插入換行符

我試圖使用<br>\\n但這些都不起作用。

在放入錯誤消息時使用雙引號:

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.');

不起作用:注意單引號。

PHP_EOL管理多個平台上的換行符:

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

如前所述,您可以使用PHP_EOL或使用雙引號來輸出日志文件的換行符。

無論如何,當使用linux控制台調試應用程序時, tail命令會將新行顯示為\\\\\\\\n

簡單的解決方案是使用sed以用\\\\n替換\\\\\\\\n \\\\n

tail -f file | sed 's/\\n/\n/g'

看到這個答案:
https://serverfault.com/a/126409

我偶爾會遇到這個問題,但是某些PHP解釋器並不總是能夠自己公平地使用\\n 我丑陋的解決方案需要為換行添加原始ASCII代碼, \\10 ,似乎可以解決問題。 所以試試\\n\\10

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

這是看起來很糟糕的代碼,所以你可能想把它包裝到你自己的函數中......但是如果你想要突出的話,它會使錯誤日志看起來好多了。

我也不知道為什么這樣做效果更好......不在乎找不到,但如果有人知道為什么,聽到它會很酷。

在調試時,如果你想讓你的錯誤日志行在你看日志'tail -f'時脫穎而出,我會使用這樣一個小函數來使線條突出並易於閱讀。

只需拋出一些空白區域,以及一個常用術語,如“CUSTOM_LOG”,以便日后使用。

highlight_error_log('Msg here');

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

如果您的php.ini文件和函數調用中的錯誤日志路徑未定義,則\\n\\r\\n將無效,即使雙引號(它們將顯示為文字字符)。

你可以通過在php.ini指定一個位置來解決這個問題:

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

或者在每個PHP函數調用中如下:

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

這是正確答案PHP_EOL管理多個平台上的換行符:

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

https://blog.zohear.com/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM