每个错误日志接收器(写入器)组件都有它用来将消息写入其目标的特征输出格式,但其他因素可能会影响消息的内容:
日志作者可用的信息。如果在执行写入程序组件之前执行的日志过滤器组件删除日志事件属性,则该属性不可用于写入。
系统变量可能会影响日志编写者。
对于所有日志写入者,错误日志消息中包含的ID是负责写入消息的mysqld内的线程的ID 。这表明服务器的哪部分产生了消息,并且与一般查询日志和慢查询日志消息(包括连接线程ID)一致。
输出格式为log_sink_internal
输出格式为log_sink_json
输出格式为log_sink_syseventlog
影响错误日志格式的系统变量
该日志写入器生成传统的错误日志输出。它使用以下格式写入消息:
timestamp thread_id [severity] [err_code] [subsystem] message
的[
和]
方括号字符是在消息格式文本字符。它们不表示该字段是可选的。
在 和 场均在MySQL 8.0.4和8.0.5分别添加。它们将从旧服务器生成的日志中丢失。日志解析器可以将这些字段视为消息文本的一部分,这些消息文本仅存在于服务器写入的日志中,该日志足以包含它们。解析器必须将 部分 指标视为字符串值。 [
err_code
][
subsystem
]err_code
[
err_code
]
例子:
2018-03-22T12:35:47.538083Z 0 [Note] [MY-012487] [InnoDB] InnoDB: DDL log recovery : begin
2018-03-22T12:35:47.550565Z 0 [Warning] [MY-010068] [Server] CA certificate /var/mysql/sslinfo/cacert.pem is self signed.
2018-03-22T12:35:47.669397Z 4 [Note] [MY-010051] [Server] Event Scheduler: scheduler thread started with id 4
2018-03-22T12:35:47.550939Z 0 [Note] [MY-010253] [Server] IPv6 is available.
JSON格式的日志编写器将消息生成为包含键/值对的JSON对象。例如:
{ "prio": 3, "err_code": 10051, "subsystem": "Server",
"source_file": "event_scheduler.cc", "function": "run",
"msg": "Event Scheduler: scheduler thread started with id 4",
"time": "2018-03-22T12:35:47.669397Z", "thread": 4,
"err_symbol": "ER_SCHEDULER_STARTED", "SQL_state": "HY000",
"label": "Note" }
该log_timestamps
系统变量控制时间戳的写入错误日志消息(以及一般查询日志和慢查询日志文件)的时区。允许的值是 UTC
(默认)和 SYSTEM
(本地系统时区)。学什么技术|网络技术|mysql