MySQL Shell 9.0  /  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 模式內容。

  • object.method:全域物件方法內容。例如,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