本节介绍哪些服务器选项配置默认错误日志目标,可以是控制台或命名文件。它还指示哪些日志接收器组件将它们自己的输出目标基于默认目标。
在此讨论中,“控制台”表示
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。