您可以将 MySQL Shell 命令或实用程序执行的所有 SQL 语句记录到 MySQL Shell 日志文件。
          logSql 如果 dba.logSql 已禁用,则替换 dba.logSql,logSql 优先。但是,如果 dba.logSql 已启用,它优先于 logSql,但仅适用于 dba.* 上下文中的日志消息。
应用程序日志级别必须设置为至少 INFO (5),以便将这些消息写入 MySQL Shell 日志。
可以使用以下方法之一启用、禁用或更改 MySQL Shell SQL 日志记录
- 命令行: - --log-sql=在您的 MySQL Shell 启动命令中。- logOption
- 
MySQL Shell 配置选项: shell.options['logSql']='在您的 MySQL Shell 会话期间。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:- 日期和时间
- 日志消息的日期和时间。 
- 日志级别
- 
日志级别。有关日志级别的更多信息,请参见 表 12.1,“MySQL Shell 中的日志记录级别”。 所有成功的 SQL 语句和不成功语句的错误消息都以 INFO日志级别记录。
- 日志上下文
- 
日志消息的来源。可以是以下值之一 - 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