MySQL Shell 8.4  /  MySQL Shell 記錄與除錯

第 12 章 MySQL Shell 記錄與除錯

您可以使用 MySQL Shell 的記錄功能來驗證 MySQL Shell 在執行時的狀態,並針對任何問題進行疑難排解。

依預設,MySQL Shell 會將記錄層級 5(錯誤、警告和資訊訊息)的記錄資訊傳送到應用程式記錄檔。您也可以設定 MySQL Shell 將資訊傳送到選用的額外可檢視位置,並以詳細輸出的形式傳送到主控台。

您可以控制要傳送到每個目的地的詳細程度。對於應用程式記錄和額外的可檢視位置,您可以將任何可用的層級指定為詳細程度的最大值。對於詳細輸出,您可以指定一個對應至詳細程度最大值的設定。提供下列詳細程度:

表 12.1 MySQL Shell 中的記錄層級

記錄層級 - 數值 記錄層級 - 文字 意義 詳細設定

1

不記錄

0

2

內部

內部錯誤

1

3

錯誤

錯誤

1

4

警告

警告

1

5

資訊

資訊

1

6

除錯

除錯

2

7

除錯 2

除錯 2

3

8

除錯 3

除錯 3

4

您可以選擇將您在 MySQL Shell 的 SQL 模式中互動式發出的 SQL 陳述式傳送到作業系統的系統記錄設備(在 Unix 上為 syslog,在 Windows 事件記錄中)。會從 MySQL Shell 程式碼歷程記錄中排除的 SQL 陳述式不會傳送到系統記錄設備。

依預設,MySQL Shell 不會記錄或輸出由 MySQL Shell 本身在 AdminAPI 作業過程中執行的 SQL 陳述式。如果您想要觀察這些作業在 SQL 執行方面的進度,以及作業期間傳回的訊息,您可以啟用這些陳述式的記錄。如果記錄層級設定為 5 或以上,則這些陳述式會以資訊訊息的形式寫入 MySQL Shell 應用程式記錄檔。如果詳細設定為 1 或以上,則也會將它們以詳細輸出的形式傳送到主控台。

依預設,MySQL Shell 會將程式的所有記錄傳送到相同的應用程式記錄檔,並將程式的所有輸出傳送到相同的目的地。函數 shell.create_context 可在 MySQL Shell 的 Python 模式中使用,以支援 Python 程式的多執行緒。此函數用於新的 Python 執行緒內,以建立隔離記錄、中斷和委派的範圍。內容包裝函式會處理並隔離列印到 stdoutstderr 的輸出和診斷輸出,以及使用者輸入,並針對密碼進行個別處理。您也可以建立專屬於執行緒的個別應用程式記錄檔。

如需設定應用程式記錄和選用額外目的地的指示(在以 Unix 為基礎的系統上為 stderr,在 Windows 系統上為 OutputDebugString() 函數),請參閱第 12.1 節,「應用程式記錄」

如需以詳細輸出的形式將記錄資訊傳送到主控台的指示,請參閱第 12.2 節,「詳細輸出」

如需將互動式 SQL 陳述式傳送到系統記錄設備的指示,請參閱第 12.3 節,「使用者 SQL 陳述式的系統記錄」

如需啟用由 AdminAPI 作業執行的 SQL 陳述式的記錄指示,請參閱第 12.4 節,「MySQL Shell SQL 記錄」