可能使mysqld将错误日志写入系统日志(Windows以及syslogUnix和类似Unix的系统上的事件日志 )。
本节介绍如何使用内置的过滤器log_filter_internal和系统日志编写器配置错误日志记录log_sink_syseventlog,以立即生效并随后启动服务器。有关配置错误日志记录的一般信息,请参见 第5.4.2.1节“错误日志组件配置”。
要启用系统日志编写器,请首先加载编写器组件,然后修改 log_error_services值:
INSTALL COMPONENT 'file://component_log_sink_syseventlog';
SET GLOBAL log_error_services = 'log_filter_internal; log_sink_syseventlog';
要设置log_error_services为在服务器启动时生效,请使用 第5.4.2.1节“错误日志组件配置”中的说明。这些指令也适用于其他错误记录系统变量。
注意
对于MySQL 8.0配置,必须显式启用将错误日志记录到系统日志中。这与MySQL 5.7和更低版本不同,MySQL 5.7和更低版本默认情况下在Windows上启用了将错误日志记录到系统日志的功能,并且在所有平台上都不需要加载组件。
错误记录到系统日志中可能需要其他系统配置。请查阅所用平台的系统日志文档。
在Windows上,写入应用程序日志中事件日志的错误消息具有以下特征:
- 标记为
Error,Warning和的条目Note将写入事件日志,但不会写入消息(例如来自各个存储引擎的信息语句)。 - 事件日志条目的来源
MySQL(或 如果定义为)。MySQL-*tag*syseventlog.tagtag
在Unix和类似Unix的系统上,使用登录到系统日志 syslog。以下系统变量会影响 syslog消息:
syseventlog.facility:syslog消息的默认功能是daemon。设置此变量以指定其他功能。syseventlog.include_pid:是否在每行syslog输出中包括服务器进程ID 。syseventlog.tag:此变量定义了一个标签,该标签将添加到 消息中的服务器标识符(mysqld)中syslog。如果已定义,则标签将以前导连字号附加到标识符。
注意
在此之前的MySQL 8.0.13,使用 log_syslog_facility, log_syslog_include_pid和 log_syslog_tag系统变量,而不是 变量。 syseventlog.*xxx*
MySQL将自定义标签“ System ”用于有关非错误情况的重要系统消息,例如启动,关闭以及对设置的一些重大更改。在不支持自定义标签的日志中,包括Windows syslog上的“事件日志”,以及在Unix和类似Unix的系统上,会为系统消息分配用于信息优先级的标签。但是,即使MySQL log_error_verbosity设置通常在信息级别排除消息,这些消息也会打印到日志中 。
当日志编写者必须以这种方式退回到标签 “ 信息 ”而不是“ 系统 ”,并且日志事件在MySQL服务器之外进一步处理(例如,通过syslog配置过滤或转发 )时,这些事件可能默认情况下,辅助应用程序将其作为 “ 信息 ”优先级而不是 “ 系统 ”优先级进行处理。




