MySQL Shell 应用程序日志文件的位置是用户配置路径,文件名为 mysqlsh.log
。默认情况下,MySQL Shell 会将日志级别 5(错误、警告和信息消息)的日志信息发送到此文件。
日志消息使用 UTC 格式的时间戳。
要更改发送的日志信息的级别,或禁用应用程序日志文件的日志记录,请选择以下选项之一
在启动 MySQL Shell 时使用
--log-level
命令行选项。使用 MySQL Shell
\option
命令设置logLevel
MySQL Shell 配置选项。有关使用此命令的说明,请参阅 第 13.4 节,“配置 MySQL Shell 选项”。使用
shell.options
对象设置logLevel
MySQL Shell 配置选项。有关使用此配置接口的说明,请参阅 第 13.4 节,“配置 MySQL Shell 选项”。
可用的日志级别如 表 12.1,“MySQL Shell 中的日志级别” 所示。如果为该选项指定日志级别 1 或 none
,则禁用对应用程序日志文件的日志记录。所有其他值都启用日志记录,并在日志文件中设置详细信息级别。该选项需要一个值。
使用 --log-level
命令行选项,您可以使用其文本名称或等效的数字指定日志级别,因此以下示例具有相同的效果
$> mysqlsh --log-level=4
$> mysqlsh --log-level=warning
使用 logLevel
MySQL Shell 配置选项,您只能指定数字日志级别。
如果您在日志级别前添加 @(at 符号),则日志条目将输出到额外的可见位置,并写入 MySQL Shell 日志文件。以下示例具有相同的效果
$> mysqlsh --log-level=@8
$> mysqlsh --log-level=@debug3
在基于 Unix 的系统上,日志条目以当前为 MySQL Shell 设置的输出格式输出到 stderr
。这是 resultFormat
MySQL Shell 配置选项的值,除非通过使用 --json
命令行选项启动 MySQL Shell 激活了 JSON 包装。
在 Windows 系统上,日志条目使用 OutputDebugString()
函数打印,其输出可以在应用程序调试器、系统调试器或调试输出捕获工具中查看。
MySQL Shell 日志文件格式为纯文本,条目包含时间戳和问题描述,以及上述列表中的日志级别。例如
2016-04-05 22:23:01: Error: Default Domain: (shell):1:8: MySQLError: You have an error
in your SQL syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near '' at line 1 (1064) in session.sql("select * from t
limit").execute().all();
在 Windows 上,应用程序日志文件的默认路径为 %APPDATA%\MySQL\mysqlsh\mysqlsh.log
。要在系统上查找 %APPDATA%
的位置,请从命令行回显它。例如
C:>echo %APPDATA%
C:\Users\exampleuser\AppData\Roaming
在 Windows 上,路径是特定于用户的 %APPDATA%
文件夹,并添加了 MySQL\mysqlsh
。使用上面的示例,路径将是 C:\Users\exampleuser\AppData\Roaming\MySQL\mysqlsh\mysqlsh.log
。
如果您希望将应用程序日志文件存储在不同的位置,可以通过定义环境变量 MYSQLSH_USER_CONFIG_HOME
来覆盖默认的用户配置路径。此变量的值将替换 Windows 上的 %AppData%\MySQL\mysqlsh\
。
您还可以在从命令行运行 mysqlsh
时使用 --log-file
选项覆盖用户配置路径。 --log-file
选项适用于单个 MySQL Shell 实例,这意味着不同的实例可以写入不同的位置。
对于运行 Unix 的机器,应用程序日志文件的默认路径为 ~/.mysqlsh/mysqlsh.log
,其中 “~” 表示用户的主目录。环境变量 HOME
也表示用户的主目录。将 .mysqlsh
附加到用户的主目录将确定日志的默认路径。
如果您希望将应用程序日志文件存储在不同的位置,可以通过定义环境变量 MYSQLSH_USER_CONFIG_HOME
来覆盖默认的用户配置路径。此变量的值将替换 Unix 上的 ~/.mysqlsh/
。
您还可以在从命令行运行 mysqlsh
时使用 --log-file
选项覆盖用户配置路径。 --log-file
选项适用于单个 MySQL Shell 实例,这意味着不同的实例可以写入不同的位置。