本節說明個別錯誤日誌元件的特性。如需關於設定錯誤日誌的一般資訊,請參閱第 7.4.2 節「錯誤日誌」。
日誌元件可以是篩選器或接收器
篩選器處理日誌事件,以新增、移除或修改事件欄位,或完全刪除事件。產生的事件會傳遞至已啟用元件清單中的下一個日誌元件。
接收器是日誌事件的目的地(寫入器)。通常,接收器會將日誌事件處理成具有特定格式的日誌訊息,並將這些訊息寫入其相關聯的輸出,例如檔案或系統日誌。接收器也可以寫入 Performance Schema
error_log
表格;請參閱第 29.12.22.2 節「error_log 表格」。事件會未經修改地傳遞到已啟用元件清單中的下一個日誌元件(也就是說,雖然接收器會格式化事件以產生輸出訊息,但不會在事件內部傳遞到下一個元件時修改事件)。
log_error_services
系統變數會列出已啟用的日誌元件。未在清單中命名的元件會停用。log_error_services
也會在錯誤日誌元件尚未載入時隱式載入這些元件。如需更多資訊,請參閱第 7.4.2.1 節「錯誤日誌組態」。
以下各節說明個別日誌元件,依元件類型分組
元件描述包括這些類型的資訊
元件名稱和預期用途。
元件是內建的還是必須載入。對於可載入的元件,描述指定了若使用
INSTALL COMPONENT
和UNINSTALL COMPONENT
語句顯式載入或卸載元件時要使用的 URN。隱式載入錯誤日誌元件只需要元件名稱。更多資訊,請參閱 第 7.4.2.1 節「錯誤日誌設定」。元件是否可以在
log_error_services
值中列出多次。對於接收器元件,元件寫入輸出的目的地。
對於接收器元件,它是否支援 Performance Schema
error_log
表的介面。
錯誤日誌篩選元件實作錯誤日誌事件的篩選。如果未啟用任何篩選元件,則不會發生篩選。
任何已啟用的篩選元件僅會影響 log_error_services
值中稍後列出的元件的日誌事件。特別是,對於任何在任何篩選元件之前列於 log_error_services
中的日誌接收器元件,不會發生任何日誌事件篩選。
log_filter_internal 元件
用途:根據日誌事件優先順序和錯誤代碼,結合
log_error_verbosity
和log_error_suppression_list
系統變數實作篩選。請參閱 第 7.4.2.5 節「基於優先順序的錯誤日誌篩選 (log_filter_internal)」。URN:此元件為內建,無需載入。
允許多次使用:否。
如果 log_filter_internal
已停用,log_error_verbosity
和 log_error_suppression_list
不會生效。
log_filter_dragnet 元件
用途:根據
dragnet.log_error_filter_rules
系統變數設定定義的規則實作篩選。請參閱 第 7.4.2.6 節「基於規則的錯誤日誌篩選 (log_filter_dragnet)」。URN:
file://component_log_filter_dragnet
允許多次使用:否。
錯誤日誌接收器元件是實作錯誤日誌輸出的寫入器。如果未啟用任何接收器元件,則不會發生日誌輸出。
某些接收器元件描述指的是預設錯誤日誌目的地。這是主控台或檔案,由 log_error
系統變數的值指示,如 第 7.4.2.2 節「預設錯誤日誌目的地設定」中所述決定。
log_sink_internal 元件
用途:實作傳統的錯誤日誌訊息輸出格式。
URN:此元件為內建,無需載入。
允許多次使用:否。
輸出目的地:寫入至預設錯誤日誌目的地。
Performance Schema 支援:寫入至
error_log
表。提供一個剖析器,用於讀取先前伺服器執行個體建立的錯誤日誌檔案。
log_sink_json 元件
用途:實作 JSON 格式的錯誤日誌記錄。請參閱 第 7.4.2.7 節「JSON 格式的錯誤日誌記錄」。
URN:
file://component_log_sink_json
允許多次使用:是。
輸出目的地:此接收器根據預設錯誤日誌目的地決定其輸出目的地,預設錯誤日誌目的地由
log_error
系統變數給定如果
log_error
指定一個檔案,接收器會根據該檔案名稱加上一個編號的.
後綴作為輸出檔案命名,其中NN
.jsonNN
從 00 開始。例如,如果log_error
是file_name
,則log_error_services
值中命名的log_sink_json
的連續執行個體會寫入
、file_name
.00.json
等等。file_name
.01.json如果
log_error
是stderr
,接收器會寫入主控台。如果在log_error_services
值中多次命名log_sink_json
,它們都會寫入主控台,這可能不是很有用。
Performance Schema 支援:寫入至
error_log
表。提供一個剖析器,用於讀取先前伺服器執行個體建立的錯誤日誌檔案。
log_sink_syseventlog 元件
用途:實作到系統日誌的錯誤日誌記錄。這是 Windows 上的事件日誌,以及 Unix 和類 Unix 系統上的
syslog
。請參閱 第 7.4.2.8 節「到系統日誌的錯誤日誌記錄」。URN:
file://component_log_sink_syseventlog
允許多次使用:否。
輸出目的地:寫入到系統日誌。不使用預設錯誤日誌目的地。
Performance Schema 支援:不寫入到
error_log
表。不提供用於讀取先前伺服器執行個體建立的錯誤日誌檔案的剖析器。
log_sink_test 元件
用途:旨在用於編寫測試案例的內部用途,不適用於生產環境。
URN:
file://component_log_sink_test
log_sink_test
的接收器屬性(例如是否允許多次使用以及輸出目的地)未指定,因為如前所述,它是用於內部用途。因此,它的行為隨時可能變更。