您可以使用 MySQL Shell 的日志记录功能来验证 MySQL Shell 在运行时的状态并排查任何问题。
默认情况下,MySQL Shell 会将日志记录信息(日志级别 5,包括错误、警告和信息消息)发送到应用程序日志文件。您还可以配置 MySQL Shell 将信息发送到可选的附加可见位置,以及作为详细输出发送到控制台。
您可以控制发送到每个目标的详细信息级别。对于应用程序日志和附加可见位置,您可以指定任何可用级别作为最大详细信息级别。对于详细输出,您可以指定一个映射到最大详细信息级别的设置。以下详细信息级别可用
表 12.1 MySQL Shell 中的日志记录级别
日志记录级别 - 数字 | 日志记录级别 - 文本 | 含义 | 详细设置 |
---|---|---|---|
1 |
|
不记录日志 |
0 |
2 |
|
内部错误 |
1 |
3 |
|
错误 |
1 |
4 |
|
警告 |
1 |
5 |
|
信息 |
1 |
6 |
|
调试 |
2 |
7 |
|
调试 2 |
3 |
8 |
|
调试 3 |
4 |
您可以选择将您在 MySQL Shell 的 SQL 模式下交互式发出的 SQL 语句发送到操作系统的系统日志记录设施(在 Unix 上为 syslog
,或在 Windows 上为 Windows 事件日志)。将从 MySQL Shell 代码历史记录中排除的 SQL 语句不会发送到系统日志记录设施。
默认情况下,MySQL Shell 不会记录或输出在 AdminAPI 操作过程中由 MySQL Shell 本身执行的 SQL 语句。如果您想观察这些操作的 SQL 执行进度(除了操作期间返回的消息外),您可以激活这些语句的日志记录。语句将写入 MySQL Shell 应用程序日志文件,作为信息消息提供,前提是日志记录级别设置为 5 或更高。它们也会发送到控制台作为详细输出,前提是详细设置设置为 1 或更高。
默认情况下,MySQL Shell 将程序的所有日志记录发送到同一个应用程序日志文件,并将程序的所有输出发送到同一个目标。函数 shell.create_context
可在 MySQL Shell 的 Python 模式下使用,以支持 Python 程序的多线程。该函数用于在新 Python 线程内部创建一个范围,该范围隔离日志记录、中断和委托。上下文包装器处理并隔离打印到 stdout
和 stderr
的输出以及诊断输出,以及用户输入,对密码进行单独处理。您还可以创建特定于线程的单个应用程序日志文件。
有关配置应用程序日志和可选附加目标(在基于 Unix 的系统上为 stderr
或在 Windows 系统上为 OutputDebugString()
函数)的说明,请参见 第 12.1 节 “应用程序日志”。
有关将日志记录信息发送到控制台作为详细输出的说明,请参见 第 12.2 节 “详细输出”。
有关将交互式 SQL 语句发送到系统日志记录设施的说明,请参见 第 12.3 节 “用户 SQL 语句的系统日志记录”。
有关激活由 AdminAPI 操作执行的 SQL 语句的日志记录的说明,请参见 第 12.4 节 “MySQL Shell SQL 日志记录”。