本节介绍哪些服务器选项配置默认错误日志目标,可以是控制台或命名文件。它还指示哪些日志接收器组件将它们自己的输出目标基于默认目标。
在此讨论中,“控制台”表示
stderr
标准错误输出。这是您的终端或控制台窗口,除非标准错误输出已被重定向到不同的目的地。
对于 Windows 和 Unix 系统,服务器对确定默认错误日志目标的选项的解释有所不同。请务必使用适合您的平台的信息配置目的地。服务器解释默认错误日志目标选项后,它会设置log_error
系统变量以指示默认目标,这会影响多个日志接收器组件写入错误消息的位置。以下部分将讨论这些主题。
在 Windows 上,mysqld使用
--log-error
、
--pid-file
和
--console
选项来确定默认错误日志目标是控制台还是文件,如果是文件,则文件名:
如果
--console
给出,默认目的地是控制台。(如果两者都给出--console
则优先--log-error
,并且以下项目--log-error
不适用。)如果
--log-error
没有给出,或者没有命名文件,默认目标是
在数据目录中命名的文件,除非host_name
.err--pid-file
指定了该选项。.err
在这种情况下,文件名是数据目录中 带有后缀的 PID 文件基本名称。如果
--log-error
给文件命名,则默认目标是该文件(.err
如果名称没有后缀,则添加后缀)。除非给出绝对路径名以指定不同的位置,否则文件位置在数据目录下。
如果默认错误日志目的地是控制台,则服务器将log_error
系统变量设置为stderr
. 否则,默认目标是文件,服务器设置
log_error
为文件名。
在 Unix 和类 Unix 系统上,mysqld使用--log-error
选项来确定默认错误日志目标是控制台还是文件,如果是文件,则文件名:
如果
--log-error
没有给出,默认目的地是控制台。如果
--log-error
在没有命名文件的情况下给出,则默认目标是
在数据目录中命名的文件。host_name
.err如果
--log-error
给文件命名,则默认目标是该文件(.err
如果名称没有后缀,则添加后缀)。除非给出绝对路径名以指定不同的位置,否则文件位置在数据目录下。如果在使用mysqld_safe启动服务器的系统上的 、 或部分的选项文件中给出,则 mysqld_safe 查找
--log-error
并使用该选项,并将其传递给mysqld。[mysqld]
[server]
[mysqld_safe]
Yum 或 APT 包安装通常会
像在服务器配置文件中/var/log
那样使用选项
配置错误日志文件位置。log-error=/var/log/mysqld.log
从选项中删除路径名会导致
使用数据目录中的文件。
host_name
.err
如果默认错误日志目的地是控制台,则服务器将log_error
系统变量设置为stderr
. 否则,默认目标是文件,服务器设置
log_error
为文件名。
服务器解释错误日志目标配置选项后,它设置
log_error
系统变量以指示默认错误日志目标。Log sink 组件可以将它们自己的输出目标基于该
log_error
值,或者独立于
log_error
如果log_error
是
stderr
,则默认错误日志目的地是控制台,并且将其输出目的地基于默认目的地的日志接收器也会写入控制台:
log_sink_internal
,log_sink_json
,log_sink_test
: 这些接收器写入控制台。即使对于log_sink_json
可以多次启用的接收器也是如此;所有实例都写入控制台。log_sink_syseventlog
:无论值如何,此接收器都会写入系统日志log_error
。
如果log_error
不是
stderr
,则默认错误日志目标是文件并log_error
指示文件名。将其输出目标基于默认目标基本输出文件命名的日志接收器。(一个接收器可能使用那个名称,或者它可能使用它的一些变体。)假设
log_error
值
file_name
. 然后日志接收器使用这样的名称:
log_sink_internal
,log_sink_test
: 这些接收器写入file_name
.log_sink_json
:在值中命名的此接收器的连续实例log_error_services
写入名为file_name
加上编号 后缀的文件: ,, 等等。.
NN
.jsonfile_name
.00.jsonfile_name
.01.jsonlog_sink_syseventlog
:无论值如何,此接收器都会写入系统日志log_error
。