您可以將 MySQL Shell 命令或工具程式執行的所有 SQL 陳述式記錄到 MySQL Shell 記錄檔中。
如果 dba.logSql
已停用,則 logSql
會取代 dba.logSql
,logSql
優先。但是,如果 dba.logSql
已啟用,則它會優先於 logSql
,但僅限於 dba.*
內容中的記錄訊息。
應用程式記錄層級必須設定為至少 INFO (5)
,這些訊息才能寫入 MySQL Shell 記錄中。
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.ignorePattern
和logSql.ignorePatternUnsafe
中定義的忽略模式除外。如需詳細資訊,請參閱篩選 SQL 記錄。- all
記錄所有 MySQL Shell SQL 陳述式,但符合
logSql.ignorePatternUnsafe]
中定義的忽略模式除外。如需詳細資訊,請參閱篩選 SQL 記錄。- unfiltered
記錄所有 MySQL Shell 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.createCluster
或Cluster.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