---
title: "日志概述 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: 日志概述 系统日志（SysLog）指 OceanBase 数据库程序日志，OceanBase 数据库在运行过程中自动打印的日志，用于监控报警和诊断。系统日志是监控指标的有力补充，两者共同支撑起 OceanBase 数据库的可观测能力。 系统日志与事务日志在有些场景下都简称为“日志”，但两者是完全不同的事物： 系统日志…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# 日志概述

更新时间：2026-03-03 09:59:14

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/600.manage/800.logging/100.logging-overview.md)  

系统日志（SysLog）指 OceanBase 数据库程序日志，OceanBase 数据库在运行过程中自动打印的日志，用于监控报警和诊断。系统日志是监控指标的有力补充，两者共同支撑起 OceanBase 数据库的可观测能力。

系统日志与事务日志在有些场景下都简称为“日志”，但两者是完全不同的事物：

- 系统日志（SysLog）：OceanBase 数据库进程运行过程中打印的日志，用于监控报警和诊断，是可观测性领域的内容。
 - 事务日志（commit log，简称 clog）：OceanBase 数据库先于数据持久化的 WAL，用于保证事务性，是数据一致性领域的内容。

## 日志模块

程序日志分为不同的模块，且有父模块和子模块两个层级。

- OceanBase 数据库的父模块包括 `CLIENT`、`CLOG`、`COMMON`、`ELECT`、`LIB`、`PROXY`、`RPC`、`RS`、`SERVER`、`SHARE`、`SQL`、`STORAGE`、`TLOG` 等。
 - 如果父模块下含有子模块，则表示为 `父模块.子模块`。例如：`SQL.PARSER` 表示 SQL 模块下的 PARSER 子模块；`SQL.*` 表示 SQL 模块下的所有子模块。

## 日志文件

OceanBase 数据库日志模块所属的日志文件分为 `observer.log`、`election.log`、`rootservice.log`、`trace.log` 和 `alert.log` 五种类型，默认打印 INFO 级别以上的日志。

除 `trace.log`、`alert.log` 文件之外，每类日志文件自动生成一个带有 `.wf` 后缀的 WARNING 日志文件（`observer.log.wf`、`election.log.wf`、`rootservice.log.wf`），只打印 WARN 级别以上的日志。通过集群配置项 `enable_syslog_wf` 控制是否生成 WARNING 日志文件。

| 日志名称 | 日志路径 |
| --- | --- |
| 启动和运行日志（`observer.log`、`observer.log.wf`） | OBServer 服务器的 `$work_dir/log` 目录下。 |
| 选举日志（`election.log`、`election.log.wf`） | OBServer 服务器的 `$work_dir/log` 目录下。 |
| Root Service 日志（`rootservice.log`、`rootservice.log.wf`） | OBServer 服务器的 `$work_dir/log` 目录下。 |
| 全链路追踪日志（trace.log） | OBServer 服务器的 `$work_dir/log` 目录下。 |
| 警告日志（alert.log） | OBServer 服务器的 `$work_dir/log/alert` 目录下。 |

OceanBase 数据库的单个日志文件大小不超过 256MB，当日志文件大小达到 256 MB 时，系统会进行日志轮转。原日志文件追加时间为后缀（格式为 `yyyyMMddHHmmss`），时间为本日志文件中最后一条日志的生成时间，并生成新的日志文件。发生日志轮转时，`.wf` 日志文件即使没到 256MB 也会一起轮转。也就是说 `xxx.log.wf` 文件和 `xxx.log` 文件总是一一对应的，`.wf` 文件一般情况下远小于 256 MB。

典型日志文件目录如下：

```log
log
├── election.log
├── election.log.wf
├── observer.log
├── observer.log.20220427154619
├── observer.log.wf
├── observer.log.wf.20220427154619
├── rootservice.log
├── rootservice.log.20220427165438
├── rootservice.log.wf
├── rootservice.log.wf.20220427165438
└── log
    ├── alert.log
    └── alert.log.20220304102928236

```

OceanBase 数据库原生支持日志归档（通过集群配置项 `enable_syslog_recycle` 控制），当日志总文件数达到 `max_syslog_file_count` 时，日志轮转时删除最老的日志文件。日志文件最大空间使用可按如下方式评估: `max_syslog_file_count * 256M * 3 * (enable_syslog_wf ? 2 : 1)`。

OceanBase 数据库原生日志归档功能基于文件数进行日志归档，当 OceanBase 数据库与外部管控系统（例如 OCP）一起部署时，通常使用外部管控系统提供的基于磁盘空间使用率的日志归档功能。

## 日志格式

典型的一行日志，及其格式如下。

普通的一行日志：

```log
[2022-04-29 16:39:55.186527] WARN [COMMON] get_file_id_range (ob_log_file_group.cpp:127) [103594] [0]     [Y0-0000000000000000-0-0] [lt=17] [dc=0] max file does not exist(max_file_id=4, b_exist=false)

```

对日志进行拆解，得到日志格式：

- time：`[2022-04-29 16:39:55.186527]`
 - log_level：`WARN`
 - module：`[COMMON]`
 - function：`get_file_id_range`
 - file_name:line_number：`(ob_log_file_group.cpp:127)`
 - thread_id：`[103594]`
 - coroutine_id：`[0]`
 - trace_id：`[Y0-0000000000000000-0-0]`
 - log_used_time：`[lt=17]`
 - dropped_msg_count：`[dc=0]`
 - info：`max file does not exist`
 - parameter：`(max_file_id=4, b_exist=false)`

日志格式分为两部分：

- header：`[2022-04-29 16:39:55.186527] WARN [COMMON] get_file_id_range (ob_log_file_group.cpp:127) [103594] [0] [Y0-0000000000000000-0-0] [lt=17] [dc=0]`
 - message：`max file does not exist(max_file_id=4, b_exist=false)`

如上格式所示，一条日志由头部（header）及消息体（message ）组成：

- header 部分：

     - time：该条日志打印的时间。
     - log_level：该条日志的级别，目前支持以下级别（由高到低）：ERROR、USER_ERR、WARN、INFO、TRACE、DEBUG。
     - module：当前打印日志的模块名，由父模块和子模块组成，OceanBase 数据库支持按模块指定日志级别。
     - function：当前打印日志的函数名。
     - file_name:line_number：当前打印日志的代码源文件名以及行号。
     - thread_id：当前打印日志的线程 ID。
     - coroutine_id：当前打印日志的协程 ID。
     - trace_id：用于跟踪一个任务的 trace_id，任务级唯一，该 trace_id 通过 RPC 在各个 OBServer 间传递，从而可以根据 trace_id 来获取一个任务的所有日志数据。对应 `GV$OB_SQL_AUDIT` 视图中的 `TRACE_ID` 字段。
     - log_used_time：指上一条日志的处理时间 (异步日志场景包含日志写入文件时间)。
     - dropped_msg_count：`dc=xx`，其中 `xx` 表示当前日志距离上一条日志期间丢弃的日志个数, 没有丢弃时为 0。
 - message 部分：消息体一般由消息描述信息（info）与参数（parameter）组成。

     - info：具体的日志内容。
     - parameter：以 `name=value` 的 list 形式组成的 KV 列表。value 部分如果是简单类型直接展示，如果是复杂类型则展示为类似于 JSON 格式的文本（为提高可读性，去掉了 JSON 格式 KEY 上的 `"`）。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
