您可以使用 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 |
|
调试2 |
3个 |
8个 |
|
调试3 |
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.create_context
可以在MySQL Shell的Python模式下使用,支持Python程序多线程。该函数在一个新的 Python 线程中使用,以创建一个隔离日志记录、中断和委托的范围。上下文包装器处理和隔离打印到
stdout
和stderr
诊断输出的输出,以及用户输入,并单独处理密码。您还可以创建特定于线程的单个应用程序日志文件。
有关配置应用程序日志和可选的附加目标(stderr
基于 Unix 的系统或OutputDebugString()
Windows 系统上的功能)的说明,请参阅
第 12.1 节,“应用程序日志”。
有关将日志记录信息作为详细输出发送到控制台的说明,请参阅 第 12.2 节,“详细输出”。
有关将交互式 SQL 语句发送到系统日志记录工具的说明,请参阅第 12.3 节,“用户 SQL 语句的系统日志记录”。
有关为 AdminAPI 操作执行的 SQL 语句激活日志记录的说明,请参阅 第 12.5 节,“记录 AdminAPI 操作”。