第 12 章 MySQL Shell 日志记录和调试

2024年 4月 25日 25.6k 0

第 12 章 MySQL Shell 日志记录和调试

目录

  • 12.1 应用日志
  • 12.2 详细输出
  • 12.3 用户SQL语句的系统日志记录
  • 12.4 MySQL Shell SQL 日志记录
  • 12.5 记录AdminAPI操作

您可以使用 MySQL Shell 的日志记录功能来验证 MySQL Shell 运行时的状态并解决任何问题。

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

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

表 12.1 MySQL Shell 中的日志记录级别

日志记录级别 - 数字 记录级别 - 文本 意义 详细设置
1 none 没有日志记录 0
2 internal 内部错误 1
3 error 错误 1
4 warning 警告 1
5 info 信息性 1
6 debug 调试 2
7 debug2 调试2 3
8 debug3 调试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 线程内使用来创建一个隔离日志记录、中断和委托的作用域。上下文包装器处理和隔离打印到的输出 stdoutstderr诊断输出以及用户输入,并单独处理密码。您还可以创建特定于线程的单独应用程序日志文件。

有关配置应用程序日志和可选附加目标(stderr基于 Unix 的系统或OutputDebugString() Windows 系统上的功能)的说明,请参阅 第 12.1 节 “应用程序日志”。

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

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

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论