---
title: "查看 Web 版 ODC 日志 - 开发者中心 ODC V4.3.2 | OceanBase 文档中心"
description: "查看 Web 版 ODC 日志 本文档旨在介绍如何查看 ODC Web 版日志路径。 查看 Web 版 ODC 日志路径和文件 日志路径 登录宿主机，执行以下命令进入 ODC Docker。 # 查看 odc docker image name docker ps -a --format &quot;{{.Names}}&quot; |…"
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lqS5SYzz_YEAAAAAAAAAAAAADiGDAQ/original) 开发者中心 ODCV 4.3.2

# 查看 Web 版 ODC 日志

更新时间：2026-04-13 15:31:21

[编辑](https://github.com/oceanbase/odc-doc/edit/V4.3.2/zh-CN/1300.troubleshooting/200.collect-message/200.view-web-odc-log.md)  

本文档旨在介绍如何查看 ODC Web 版日志路径。

## 查看 Web 版 ODC 日志路径和文件

### **日志路径**

1. 登录宿主机，执行以下命令进入 ODC Docker。

   ```shell
   # 查看 odc docker image name
   docker ps -a --format "{{.Names}}" | grep odc

   # 进入 odc docker，假设 docker image name 为 odc
   IMAGE_NAME=odc &&
   docker exec -it ${IMAGE_NAME} sh

   ```
 2. Docker 中 /opt/odc/log/即为 Web 版 ODC 的日志路径。

### **日志文件**

```shell
cd /opt/odc/log

sh-4.2# ls -l
total 540
-rw-r--r-- 1 root root   9062 May 13 15:23 gc.log.0.current
-rw-r--r-- 1 root root 523802 May 13 15:23 odc.log

```

参数说明：

| 参数 | 说明 |
| --- | --- |
| odc.log | odc-server 的应用程序日志。 |
| gc.log | odc-server 的 JVM GC 日志。 |

## **根据 HTTP 请求定位后端日志**

### **步骤 1：通过浏览器开启调试**

以 Chrome 浏览器为例，按快捷键 **F12** ，选择 **Network** > **XHR** 过滤 AJAX 请求。

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/2.database-connection/2.view-web-odc-log/1.png)

#### 说明

ODC 为前后端分离架构，页面和数据是分离状态，因此 ODC 前端和后端的交互数据均通过 AJAX 请求实现。

### 步骤 2：执行操作，观察请求的 Response

![2..png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/2.database-connection/2.view-web-odc-log/2.png)

所有 API 请求的 response 中均包含以下参数：

| 参数 | 说明 |
| --- | --- |
| requestId | 前端生成的 ID，包含在后端日志中。 |
| server | 后端返回的服务器名称，在多节点部署场景下，用于确定处理当前请求的服务器。 |
| timestamp | 后端处理当前请求的时间戳。 |
| traceId | 后端生成的随机串，每个请求对应一个唯一的 traceId。 |

### **步骤3：根据 traceId 检索后端日志文件**

1. 如上述步骤 2 中截图所示，在主机名称为 OceanBase******.et15sqa 的服务器中检索日志。
 2. 检索关键字 9a00e136******ac。

   结果示例：

   ```shell
   grep 9a00e136324c43ac /opt/odc/log/odc.log
   [2021-06-01 16:57:40.305][http-nio-8989-exec-15][9a00e136324c43ac,,QRR97CNVYCB61IP8TBXCPX][INFO][com.alipay.odc.service.OdcConsoleService][56]: sql is executed completely. executeSql=select * from dual;,duration=62(ms)
   [2021-06-01 16:57:40.305][http-nio-8989-exec-15][9a00e136324c43ac,,QRR97CNVYCB61IP8TBXCPX][INFO][com.oceanbase.odc.web.trace.TraceOdcResultResponseAdvice][71]: ODC_REQUEST_TRACE, method=POST, URI=http://xxx.xx.xxx.xx:xxxx/api/v1/console/sql-execute/sid:62-5:d:yizhou_odc_240?ignoreError=true, client=xx.xx.xxx.xxx, userId=1000100, result=OdcResult(errCode=null, errMsg=ErrorCode: 1096, No tables used, isImportantMsg=false, timestamp=2021-06-01T16:57:40.242+08:00, durationMillis=63, traceId=9a00e136324c43ac, server=OceanBase152084.et15sqa, requestId=QRR97CNVYCB61IP8TBXCPX), userAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36

   ```

### 示例： **包含错误提醒的日志检索过程**

场景示例：获取一个非法语句的执行计划失败。

![3..png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odc/KB/2.database-connection/2.view-web-odc-log/3.png)

错误日志：

```shell
$grep 87d4f19ffcbd47cf /opt/odc/log/odc.log | grep ODC_FAILED_REQUEST | grep rootReason
[2021-06-01 17:08:38.743][http-nio-8989-exec-17][87d4f19ffcbd47cf,,QRR97CNVYCB61IP8TBXCPX][INFO][com.alipay.odc.controller.GlobalExceptionHandler][180]: ODC_FAILED_REQUEST, requestURI=/api/v1/diagnose/explain/sid:62-5:d:yizhou_odc_240, remoteHost=xx.xx.xxx.xxx, clientAddress=xx.xx.xxx.xxx, result=OdcResult(errCode=ObGetPlanExplainFailed, errMsg=获取执行计划失败，可能是语法错误或者 DDL 语句，错误详情：No tables used, isImportantMsg=false, timestamp=2021-06-01T17:08:38.738+08:00, durationMillis=4, traceId=87d4f19ffcbd47cf, server=OceanBase152084.et15sqa, requestId=null), exceptionType=ObException, message=No tables used, rootReason=com.alipay.odc.odcsdk.sdk.resourcedialect.exception.ObException: 获取执行计划失败，可能是语法错误或者 DDL 语句，错误详情：No tables used at com.alipay.odc.odcsdk.sdk.resourcedialect.exception.ObException.executeFailed(ObException.java:51)

```

#### 注意

包含 ODC_FAILED_REQUEST 关键字的日志行，提供了 **rootReason** 信息，该信息对于开发定位问题非常有帮助（包含异常代码行）。错误日志中的 rootReason 信息：` =com.alipay.odc.odcsdk.sdk.resourcedialect.exception.ObException: 获取执行计划失败，可能是语法错误或者 DDL 语句，错误详情：No tables used at com.alipay.odc.odcsdk.sdk.resourcedialect.exception.ObException.executeFailed(ObException.java:51)`

对于预期外异常，ODC 日志还会包含完整的异常栈，示例如下：

```shell
[2021-03-08 17:05:42.675][http-nio-8989-exec-4][ERROR][com.alipay.odc.odcsdk.sdk.resourcedialect.command.sql.ExecuteSqlOneByOneCommand][139]:fail to recognize sql type, sql = flashback table odc_myapp20183253223_238930.__recycle_$_3_1613445194315049880 to before drop
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'back table odc_myapp20183253223_238', expect IDENTIFIER, actual IDENTIFIER pos 9, line 1, column 10, token IDENTIFIER null
        at com.alibaba.druid.sql.parser.SQLParser.printError(SQLParser.java:344) ~[druid-1.1.23.jar!/:1.1.23]
        at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:532) ~[druid-1.1.23.jar!/:1.1.23]
        at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:171) ~[druid-1.1.23.jar!/:1.1.23]
        at com.alipay.odc.odcsdk.sql.OdcSqlParser.parseStatements(OdcSqlParser.java:99) ~[ob-odc-sdk-2.4.0-SNAPSHOT.jar!/:?]
        at com.alipay.odc.odcsdk.sql.OdcSqlParser.<init>(OdcSqlParser.java:36) ~[ob-odc-sdk-2.4.0-SNAPSHOT.jar!/:?]
        at com.alipay.odc.odcsdk.sdk.resourcedialect.command.sql.ExecuteSqlOneByOneCommand.recognizeSqlType(ExecuteSqlOneByOneCommand.java:130) [ob-odc-sdk-2.4.0-SNAPSHOT.jar!/:?]
        at com.alipay.odc.odcsdk.sdk.resourcedialect.command.sql.ExecuteSqlOneByOneCommand.doExecute(ExecuteSqlOneByOneCommand.java:109) [ob-odc-sdk-2.4.0-SNAPSHOT.jar!/:?]
        at com.alipay.odc.odcsdk.sdk.resourcedialect.command.sql.ExecuteSqlOneByOneCommand.doObMysql(ExecuteSqlOneByOneCommand.java:114) [ob-odc-sdk-2.4.0-SNAPSHOT.jar!/:?]
        at com.alipay.odc.odcsdk.sdk.resourcedialect.command.sql.ExecuteSqlOneByOneCommand.doObMysql(ExecuteSqlOneByOneCommand.java:27) [ob-odc-sdk-2.4.0-SNAPSHOT.jar!/:?]

```

### **日志查看分析常用命令参考**

```shell
# 查看最近10次错误请求
grep ODC_FAILED_REQUEST /opt/odc/log/odc.log | tail -10

# 根据 traceId 查看错误日志上下文，向前向后5行
#  -B, --before-context=NUM  print NUM lines of leading context
#  -A, --after-context=NUM   print NUM lines of trailing context
grep 87d4f19ffcbd47cf /opt/odc/log/odc.log -A 5 -B 5

```

 上一篇 下一篇 ![有帮助](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) 咨询热线
