7.4.2.8 错误日志记录到系统日志
可以让mysqld将错误日志写入系统日志(Windows 中的事件日志,Unix 和 Unix 类似系统中的 syslog)。
本节描述了使用内置过滤器log_filter_internal
和系统日志汇聚点log_sink_syseventlog
来配置错误日志记录,以立即生效且在后续服务器启动时生效。关于错误日志配置的总体信息,请参阅第7.4.2.1节,“Error Log Configuration”。
要启用系统日志汇聚点,首先加载汇聚点组件,然后修改log_error_services
值:
INSTALL COMPONENT 'file://component_log_sink_syseventlog';
SET PERSIST log_error_services = 'log_filter_internal; log_sink_syseventlog';
要在服务器启动时设置log_error_services
,请参阅第7.4.2.1节,“Error Log Configuration”。这些指令也适用于其他错误日志系统变量。
将错误日志写入系统日志可能需要额外的系统配置。请参阅您的平台系统日志文档。
在 Windows 中,事件日志中的应用程序日志中写入的错误消息具有以下特征:
-
标记为
Error
、Warning
和Note
的条目将被写入事件日志,但不是来自个体存储引擎的信息语句。 -
事件日志条目的来源是
MySQL
(或MySQL-
如果tag
syseventlog.tag
被定义为tag
)。
在Unix和Unix-like系统上,使用系统日志的logging使用syslog
。以下系统变量影响syslog
消息:
-
syseventlog.facility
:syslog
消息的默认facility是daemon
。将该变量设置为指定不同的facility。 -
syseventlog.include_pid
:是否包括服务器进程ID在每行syslog
输出中。 -
syseventlog.tag
:该变量定义要添加到服务器标识符(mysqld
)中的tag。 如果定义,tag将被追加到标识符的开头。
MySQL 使用自定义标签“系统”来记录非错误情况的重要系统消息,例如启动、关闭和一些设置的重要变化。在不支持自定义标签的日志中,包括 Windows 的 Event Log 和 Unix 和 Unix 类似系统上的 syslog
,系统消息将被分配到信息优先级对应的标签。然而,这些消息仍然会被记录到日志中,即使 MySQL 的log_error_verbosity
设置通常排除信息级别的消息。
当 log sink 需要 fallback 到“信息”标签,而不是“系统”标签时,这些事件可能会被默认处理为“信息”优先级,而不是“系统”优先级。在 MySQL 服务器外部进一步处理这些事件(例如,通过 syslog
配置进行过滤或转发)时,这些事件可能会被 secondary 应用程序默认处理为“信息”优先级。