MySQL Shell 应用程序日志文件的位置是用户配置路径,文件名为
mysqlsh.log
. 默认情况下,MySQL Shell 将日志级别 5 的日志信息(错误、警告和信息性消息)发送到此文件。要更改发送的日志记录信息级别,或禁用记录到应用程序日志文件,请选择以下选项之一:
启动 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 中的日志记录级别”中所列。如果none
为该选项指定日志记录级别 1 或,将禁用记录到应用程序日志文件。所有其他值都启用日志记录并设置日志文件中的详细程度。该选项需要一个值。
使用--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 的系统上,日志条目以
stderr
当前为 MySQL Shell 设置的输出格式输出。这是 MySQL Shell 配置选项的值
,除非通过使用命令行选项
resultFormat
启动 MySQL Shell 来激活 JSON 包装。--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
。此变量的值%AppData%\MySQL\mysqlsh\
在 Windows 上替换。
从 MySQL Shell 8.0.27 开始,您还可以使用该
--log-file
选项在从命令行运行时覆盖用户配置路径mysqlsh
。该--log-file
选项适用于单个 MySQL Shell 实例,这意味着不同的实例可以写入不同的位置。
对于运行 Unix 的机器,应用程序日志文件的默认路径是~/.mysqlsh/mysqlsh.log
其中
“ ~ ”代表用户的主目录。环境变量HOME
还代表用户的主目录。附加.mysqlsh
到用户的主目录决定了日志的默认路径。
如果您希望应用程序日志文件存储在不同的位置,您可以通过定义环境变量来覆盖默认的用户配置路径
MYSQLSH_USER_CONFIG_HOME
。这个变量的值~/.mysqlsh/
在 Unix 上替换。
从 MySQL Shell 8.0.27 开始,您还可以使用该
--log-file
选项在从命令行运行时覆盖用户配置路径mysqlsh
。该--log-file
选项适用于单个 MySQL Shell 实例,这意味着不同的实例可以写入不同的位置。