MySQL Shell 8.4  /  MySQL Shell 記錄與除錯  /  MySQL Shell SQL 記錄

12.4 MySQL Shell SQL 記錄

您可以將 MySQL Shell 命令或公用程式執行的所有 SQL 陳述式記錄到 MySQL Shell 記錄檔中。

注意

如果 dba.logSql 被停用,logSql 會取代 dba.logSqllogSql 會優先。但是,如果 dba.logSql 被啟用,則它會優先於 logSql,但僅適用於 dba.* 內容中的記錄訊息。

應用程式記錄層級必須設定為至少 INFO (5),這些訊息才能寫入 MySQL Shell 記錄中。

SQL 記錄選項

MySQL Shell SQL 記錄可以透過以下其中一種方式啟用、停用或變更

  • 命令列:在您的 MySQL Shell 啟動命令中使用 --log-sql=logOption

  • MySQL Shell 組態選項:在您的 MySQL Shell 工作階段期間使用 shell.options['logSql']='logOption'

以下選項可用

off

不會記錄任何 MySQL Shell SQL 陳述式。

error

(預設)只會記錄失敗的 MySQL Shell SQL 陳述式。

on

會記錄所有 MySQL Shell SQL 陳述式,但與 logSql.ignorePatternlogSql.ignorePatternUnsafe 中定義的忽略模式相符的陳述式除外。請參閱篩選 SQL 記錄以取得更多資訊。

all

會記錄所有 MySQL Shell SQL 陳述式,但與 logSql.ignorePatternUnsafe] 中定義的忽略模式相符的陳述式除外。請參閱篩選 SQL 記錄以取得更多資訊。

unfiltered

會記錄所有 MySQL Shell SQL 陳述式,不執行任何篩選。

篩選 SQL 記錄

記錄會使用以冒號分隔的 glob 模式清單進行篩選。以下選項可用

  • logSql.ignorePattern:此選項定義要篩選掉的陳述式模式之以冒號分隔的清單。預設值為 *SELECT*:*SHOW*

  • logSql.ignorePatternUnsafe:此選項定義要篩選掉的陳述式模式之以冒號分隔的清單。預設值為 *IDENTIFIED*:*PASSWORD*

有關使用 shell.options 的資訊,請參閱第 13.4 節「設定 MySQL Shell 選項」

記錄格式

記錄訊息使用以下格式

Date&Time: LogLevel: LogContext: tid= : SQL:
日期&時間

記錄訊息的日期和時間。

LogLevel

記錄層級。有關記錄層級的更多資訊,請參閱表 12.1,「MySQL Shell 中的記錄層級」

所有成功的 SQL 陳述式和不成功陳述式的錯誤訊息都會以 INFO 記錄層級記錄。

LogContext

記錄訊息的來源。可以是以下其中一個值

  • main:基本 MySQL Shell 內容。

  • sql:SQL 模式內容。

  • js:JavaScript 模式內容。

  • py:Python 模式內容。

  • 物件.方法:全域物件方法內容。例如,Dba.createClusterCluster.status

tid

MySQL 執行緒 ID。

SQL

記錄的 SQL 陳述式或錯誤訊息。

以下範例顯示具有 Dba.deploySandboxInstance 內容的 SQL INFO 訊息

        2022-06-17 15:06:00: Info: Dba.deploySandboxInstance: tid=9: SQL: SET SESSION `autocommit` = 1