我們想監視所有的php錯誤。我們可以用error_log文件檢查所有錯誤。 錯誤日誌文件變得如此之重。php錯誤日誌保存日期明智
所以這是非常困難的的error_log文件來檢查錯誤。
難道可以編寫PHP error_log中文件的日期明智例如'19 -05_2015_error.log」
,或者我們可以寫錯誤,如‘fetal.log’‘notice.log’
我們想監視所有的php錯誤。我們可以用error_log文件檢查所有錯誤。 錯誤日誌文件變得如此之重。php錯誤日誌保存日期明智
所以這是非常困難的的error_log文件來檢查錯誤。
難道可以編寫PHP error_log中文件的日期明智例如'19 -05_2015_error.log」
,或者我們可以寫錯誤,如‘fetal.log’‘notice.log’
你可以絕對使用PHP。一個流行的日誌庫是Monolog。
要以日常格式獲取日誌(19-05_2015_error.log),如果您使用的是UNIX堆棧(但如果您使用的是Windows stack,則可能更復雜一點),則可以使用logrotate。 有一些關於控制重複的提示和suppressing error messages。
據我所知,the mod_log_config module不這麼認爲排除了最直接的可能接受文件名的變量。您實際上可以使用的基於Apache的解決方案基本上包括:
說,我認爲PHP已經相當不錯內置記錄。您可以使用error_log()
function(與例如date('Y-m-d')
一起)完全按照您的要求進行操作。您甚至可以爲不同的錯誤類型定義不同的文件。當然,這不會捕獲阻止PHP代碼運行的錯誤(例如解析錯誤,請求超時等),但您可以將error_log
directive設置爲回退機制 - 這些情況應該足夠罕見,可以保持日誌文件的可管理性。
還有一個想法:請確保您的開發盒,使完整的錯誤報告(許多開發者使用第三方捆綁使用默認設置,並愉快地寫bug的代碼)。在生產服務器中存在如此多的記錄錯誤是不正常的。
您可以在您的應用程序開始改變PHP配置,動態創建日誌文件。
<?php
function logByDate(){
$sPath = '/logs/application/PhpError_' . date('Y-m-d') . '.log';
ini_set('error_log', $sPath);
}
// To validate only, it is not necessary
echo 'Actual log ' . ini_get('error_log') . PHP_EOL;
logByDate(); //Call it at beginning
// To validate only, it is not necessary
echo 'Validate new log ' . ini_get('error_log') . PHP_EOL;
Apache標籤在這個問題中扮演什麼角色?你使用PHP的'error_log'功能還是依靠Apache日誌? –
我們依靠apache日誌記錄 –