从 MySQL Shell 8.0.30 开始,您可以将 MySQL Shell 命令或实用程序执行的所有 SQL 语句记录到 MySQL Shell 日志文件中。
logSql
dba.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
'
以下选项可用:
- 离开
没有记录 MySQL Shell SQL 语句。
- 错误
(默认值)仅记录 MySQL Shell 失败的 SQL 语句。
- 上
记录所有 MySQL Shell SQL 语句,除了那些与
shell.options['log.Sql.ignorePattern']
. 有关详细信息,请参阅过滤 SQL 日志记录。- 未经过滤的
记录所有 MySQL Shell SQL 语句,不执行过滤。
使用由 指定的以冒号分隔的 glob 模式列表过滤日志
shell.options['logSql.ignorePattern']
。默认过滤器是
SELECT*:SHOW*:*IDENTIFIED*:*PASSWORD*
. 此过滤器忽略所有使用 SELECT、SHOW、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
。
- 潮汐
MySQL 线程 ID。
- 数据库
记录的 SQL 语句或错误消息。
以下示例显示了带有
Dba.deploySandboxInstance
上下文的 SQL INFO 消息:
2022-06-17 15:06:00: Info: Dba.deploySandboxInstance: tid=9: SQL: SET SESSION `autocommit` = 1