您可以使用 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 |
3 |
8 |
|
除錯 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 執行緒內,以建立隔離記錄、中斷和委派的範圍。內容包裝函式會處理並隔離列印到 stdout
和 stderr
的輸出和診斷輸出,以及使用者輸入,並針對密碼進行個別處理。您也可以建立專屬於執行緒的個別應用程式記錄檔。
如需設定應用程式記錄和選用額外目的地的指示(在以 Unix 為基礎的系統上為 stderr
,在 Windows 系統上為 OutputDebugString()
函數),請參閱第 12.1 節,「應用程式記錄」。
如需以詳細輸出的形式將記錄資訊傳送到主控台的指示,請參閱第 12.2 節,「詳細輸出」。
如需將互動式 SQL 陳述式傳送到系統記錄設備的指示,請參閱第 12.3 節,「使用者 SQL 陳述式的系統記錄」。
如需啟用由 AdminAPI 作業執行的 SQL 陳述式的記錄指示,請參閱第 12.4 節,「MySQL Shell SQL 記錄」。