MySQL Shell 9.0  /  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 上為 Windows 事件記錄檔)。從 MySQL Shell 程式碼歷程記錄中排除的 SQL 陳述式不會傳送到系統記錄設施。

根據預設,MySQL Shell 不會記錄或輸出 AdminAPI 作業過程中由 MySQL Shell 本身執行的 SQL 陳述式。如果您想要除了在作業期間傳回的訊息之外,還想觀察這些作業在 SQL 執行方面的進度,您可以啟動這些陳述式的記錄。這些陳述式會以資訊訊息的形式寫入 MySQL Shell 應用程式記錄檔,前提是記錄層級設定為 5 或以上。它們也會以詳細輸出的形式傳送到主控台,前提是詳細設定為 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 記錄」