您可以使用 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 日志记录”。