錯誤日誌

錯誤日誌

錯誤日誌是軟體用來記錄運行時出錯信息的文本檔案。編程人員和維護人員等可以利用錯誤日誌對系統進行調試和維護。

基本介紹

  • 中文名:錯誤日誌
  • 外文名:Error Log
  • 領域:計算機
定義和內容,本地錯誤日誌,系統日誌,應用程式日誌,解釋日誌信息,注意問題,

定義和內容

以下以阿帕奇為例說明錯誤日誌的定義和內容。
1、位置和內容
錯誤日誌無論在格式上還是在內容上都和訪問日誌不同。然而,錯誤日誌和訪問日誌一樣也提供豐富的信息,我們可以利用這些信息分析伺服器的運行情況、哪裡出現了問題。
錯誤日誌的檔案名稱字是error_log,但如果是Win平台,則錯誤日誌的檔案名稱字是error.log。錯誤日誌的位置可以通過ErrorLog指令設定:
ErrorLog logs/error.log
除非檔案位置用“/”開頭,否則這個檔案位置是相對於ServerRoot目錄的相對路徑。如果阿帕奇採用默認安裝方式安裝,那么錯誤日誌的位置應該在/usr/local/apache/logs下。但是,如果阿帕奇用某種包管理器安裝,錯誤日誌很可能在其他位置。
正如其名字所示,錯誤日誌記錄了伺服器運行期間遇到的各種錯誤,以及一些普通的診斷信息,比如伺服器何時啟動、何時關閉等。
我們可以設定日誌檔案記錄信息級別的高低,控制日誌檔案記錄信息的數量和類型。這是通過LogLevel指令設定的,該指令默認設定的級別是error,即記錄稱得上錯誤的事件。
大多數情況下,我們在日誌檔案中見到的內容分屬兩類:文檔錯誤和CGI錯誤。但是,錯誤日誌中偶爾也會出現配置錯誤,另外還有前面提到的伺服器啟動和關閉信息。
二、文檔錯誤
文檔錯誤和伺服器應答中的400系列代碼相對應,最常見的就是404錯誤——Document Not Found(文檔沒有找到)。除了404錯誤以外,用戶身份驗證錯誤也是一種常見的錯誤。
三、CGI錯誤
錯誤日誌最主要的用途或許是診斷行為異常的CGI程式。為了進一步分析和處理方便,CGI程式輸出到STDERR(Standard Error,標準錯誤設備)的所有內容都將直接進入錯誤日誌。這意味著,任何編寫良好的CGI程式,如果出現了問題,錯誤日誌就會告訴我們有關問題的詳細信息。
四、查看日誌檔案
下面看看如何方便地查看伺服器日誌檔案。用telnet連線到伺服器,然後輸入下面的命令:
tail -f /usr/local/apache/logs/error_log
該命令將顯示出日誌檔案的最後幾行內容,如果有新的內容加入到日誌檔案,它還會立即顯示出新加入的內容。
Windows用戶也同樣可以使用這種方法,比如可以使用各種為Windows提供的Unix工具軟體包。
還有一種替代方法是使用下面的Perl代碼,它利用了一個稱為File::Tail的模組:
use File::Tail; $file=File::Tail->new(\"/some/log/file\"); while (defined($line=$file->read)) { print \"$line\"; } 
無論具體採用的是哪一種方法,同時打開多個終端視窗都是一種好習慣:比如在一個視窗中顯示錯誤日誌,在另一個視窗中顯示訪問日誌。這樣,我們就能夠隨時獲知網站上發生的事情並立即予以解決。

本地錯誤日誌

系統日誌

系統日誌包含了由Windows系統組件記錄的事件。例如,在啟動期間裝入驅動程式或其他系統組件失敗被記錄到系統日誌。要查看系統日誌:
  1. 打開命令提示符。
  2. 在提示符下輸入eventvwr。這打開了Windows事件查看器。

應用程式日誌

應用程式日誌包含了由應用程式或程式記錄的事件。例如,資料庫程式可能在應用程式日誌中記錄一個檔案錯誤。要查看應用程式日誌:
  1. 打開命令提示符。
  2. 在提示符下輸入eventvwr。這打開了Windows事件查看器。

解釋日誌信息

在兩種日誌中,每個事件按照日期和時間順序(首先是最近的)分行顯示,帶有下列信息:
  • 類型:事件類型,可以是信息、警告或錯誤。
  • 日期和時間:事件被寫入日誌的日期和時間。
  • 源:引起該事件的操作。
  • 類別:事件的類別。預設類別是無。
  • 事件:事件編號。
  • 用戶:事件發生時的用戶名。
  • 計算機:本地機器的名稱。
查看單個日誌條目:
1 在系統或應用程式日誌中,查找日誌條目。
2 右鍵單擊條目。
在WindowsWindowsServer 2008 中,單擊事件以打開“事件屬性”視窗。
該視窗顯示事件的描述。選擇“詳細信息”選項卡可以查看將記錄寫入日誌時解析的位元組或字。
3 使用向上和向下箭頭鍵上下移動以查看日誌事件。
4 要關閉視窗,請單擊確定以返回到系統日誌或應用程式日誌。

注意問題

以下以PHP為例說明如何避免錯誤日誌被利用而導致系統遭到攻擊。
對於PHP開發者來說,一旦某個產品投入使用,應該立即將display_errors選項關閉,以免因為這些錯誤所透露的路徑、資料庫連線、數據表等信息而遭到黑客攻擊。但是,任何一個產品在投入使用後,都難免會有錯誤出現,那么如何記錄一些對開發者有用的錯誤報告呢?我們可以在單獨的文本檔案中將錯誤報告作為日誌記錄。錯誤日誌的記錄,可以幫助開發人員或者管理人員查看系統是否存在問題。
如果需要將程式中的錯誤報告寫入錯誤日誌中,只要在PHP的配置檔案中,將配置指令log_errors開啟即可。錯誤報告默認就會記錄到Web伺服器的日誌檔案里。

相關詞條

熱門詞條

聯絡我們