MySQL 8.0外壳/ MySQL Shell日志和调试

第十二章MySQL Shell日志记录和调试

您可以使用MySQL Shell的日志功能来验证MySQL Shell在运行时的状态,并排除任何问题。

默认情况下,MySQL Shell在日志级别5发送日志信息(错误、警告和信息消息)到应用程序日志文件。您还可以配置MySQL Shell将信息发送到可选的额外可视位置,并(从MySQL 8.0.17)作为详细输出发送到控制台。

您可以控制发送到每个目的地的细节级别。对于应用程序日志和其他可见位置,您可以指定任何可用级别作为详细信息的最大级别。对于详细输出,可以指定映射到最大详细级别的设置。可提供以下详细级别:

表12.1 MySQL Shell日志级别

日志级别-数字 日志级别-文字 意义 详细的设置

1

没有一个

没有日志

0

2

内部

内部错误

1

3.

错误

错误

1

4

警告

警告

1

5

信息

信息

1

6

调试

调试

2

7

debug2

Debug2

3.

8

debug3

Debug3

4

从MySQL Shell 8.0.24中,您可以选择将您以MySQL Shell的SQL模式交互发出的SQL语句发送到操作系统的系统日志工具(syslog在Unix上,或Windows事件日志)。不会将从MySQL Shell代码历史记录中排除的SQL语句发送到系统日志记录工具。

默认情况下,MySQL Shell不会记录或输出AdminAPI操作过程中由MySQL Shell自己执行的SQL语句。在MySQL Shell 8.0.18中,如果您想观察这些操作的进度(SQL执行方面)以及操作期间返回的消息,那么可以激活这些语句的日志记录。如果日志级别设置为5或更高,语句将作为信息消息写入MySQL Shell应用程序日志文件。它们还作为详细输出发送到控制台,前提是详细设置为1或更高。

默认情况下,MySQL Shell将程序的所有日志发送到相同的应用程序日志文件,并将程序的所有输出发送到相同的目的地。从MySQL Shell 8.0.26,函数shell.createContext可以在MySQL Shell的Python模式下使用Python程序来支持多线程。该函数在一个新的Python线程中使用,以创建一个隔离日志记录、中断和委托的作用域。上下文包装器处理和隔离打印到的输出stdout而且stderr还有诊断输出和用户输入,分别对密码进行处理。您还可以创建特定于线程的单独应用程序日志文件。

有关配置应用程序日志和可选附加目标的说明stderr在基于unix的系统或OutputDebugString ()函数在Windows系统上,参见第12.1节“应用程序日志”

有关将日志记录信息作为详细输出发送到控制台的说明,请参见第12.2节“详细输出”

有关将交互式SQL语句发送到系统日志记录工具的说明,请参见第12.3节“SQL语句的系统日志”

有关为AdminAPI操作执行的SQL语句激活日志记录的说明,请参见第12.4节“AdminAPI操作日志记录”