mysqld 可以将错误日志写入系统日志(Windows 上的事件日志,以及 Unix 和类 Unix 系统上的 syslog
)。
本节介绍如何使用内置过滤器 log_filter_internal
和系统日志接收器 log_sink_syseventlog
配置错误日志记录,使其立即生效并用于后续的服务器启动。有关配置错误日志记录的常规信息,请参阅 第 7.4.2.1 节“错误日志配置”。
要启用系统日志接收器,请先加载接收器组件,然后修改 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 节“错误日志配置” 中的说明。这些说明也适用于其他错误日志记录系统变量。
将错误记录到系统日志可能需要额外的系统配置。请查阅您平台上的系统日志文档。
在 Windows 上,写入应用程序日志中的事件日志的错误消息具有以下特征:
标记为
错误
、警告
和注意
的条目将写入事件日志,但诸如来自各个存储引擎的信息性语句之类的消息不会写入。事件日志条目的来源为
MySQL
(如果syseventlog.tag
定义为tag
,则为MySQL-
)。tag
在 Unix 和类 Unix 系统上,记录到系统日志使用 syslog
。以下系统变量会影响 syslog
消息:
syseventlog.facility
:syslog
消息的默认工具是daemon
。设置此变量以指定其他工具。syseventlog.include_pid
:是否在syslog
输出的每一行中包含服务器进程 ID。syseventlog.tag
:此变量定义了一个标签,用于添加到syslog
消息中的服务器标识符 (mysqld
) 中。如果定义,则标签将附加到标识符,并带有一个前导连字符。
MySQL 对有关非错误情况的重要系统消息(例如启动、关闭以及对设置的一些重大更改)使用自定义标签““系统””。在不支持自定义标签的日志(包括 Windows 上的事件日志以及 Unix 和类 Unix 系统上的 syslog
)中,系统消息被分配了用于信息优先级级别的标签。但是,即使 MySQL log_error_verbosity
设置通常会排除信息级别的消息,也会将这些消息打印到日志。
当日志接收器必须以这种方式回退到标签““信息””而不是““系统””,并且日志事件在 MySQL 服务器外部进一步处理(例如,由 syslog
配置过滤或转发)时,默认情况下,辅助应用程序可能会将这些事件处理为““信息””优先级,而不是““系统””优先级。