搜索快捷键 cmd + k | ctrl + k
- 安装
- 文档
- 入门
- 连接
- 数据导入
- 概览
- 数据源
- CSV 文件
- JSON 文件
- 多个文件
- Parquet 文件
- 分区
- Appender(追加器)
- INSERT 语句
- 客户端 API
- 概览
- ADBC
- C
- C++
- CLI
- Dart
- Go
- Java (JDBC)
- Julia
- Node.js (已弃用)
- Node.js (Neo)
- ODBC
- PHP
- Python
- R
- Rust
- Swift
- Wasm
- SQL
- 介绍
- 语句
- 概览
- ANALYZE(分析)
- ALTER TABLE(修改表)
- ALTER VIEW(修改视图)
- ATTACH 和 DETACH
- CALL(调用)
- CHECKPOINT(检查点)
- COMMENT ON(注释)
- COPY(复制)
- CREATE INDEX(创建索引)
- CREATE MACRO(创建宏)
- CREATE SCHEMA(创建模式)
- CREATE SECRET(创建密钥)
- CREATE SEQUENCE(创建序列)
- CREATE TABLE(创建表)
- CREATE VIEW(创建视图)
- CREATE TYPE(创建类型)
- DELETE(删除)
- DESCRIBE(描述)
- DROP(删除)
- EXPORT 和 IMPORT DATABASE
- INSERT(插入)
- LOAD / INSTALL(加载/安装)
- PIVOT(透视)
- 性能分析
- SELECT(选择)
- SET / RESET(设置/重置)
- SET VARIABLE(设置变量)
- SUMMARIZE(汇总)
- 事务管理
- UNPIVOT(取消透视)
- UPDATE(更新)
- USE(使用)
- VACUUM(清理)
- 查询语法
- SELECT(选择)
- FROM 和 JOIN
- WHERE(其中)
- GROUP BY(分组依据)
- GROUPING SETS(分组集)
- HAVING(具有)
- ORDER BY(排序依据)
- LIMIT 和 OFFSET
- SAMPLE(抽样)
- 展开嵌套
- WITH(带)
- WINDOW(窗口)
- QUALIFY(限定)
- VALUES(值)
- FILTER(过滤)
- 集合操作
- 预处理语句
- 数据类型
- 表达式
- 函数
- 概览
- 聚合函数
- 数组函数
- 位字符串函数
- Blob 函数
- 日期格式化函数
- 日期函数
- 日期部分函数
- 枚举函数
- 间隔函数
- Lambda 函数
- 列表函数
- 映射函数
- 嵌套函数
- 数值函数
- 模式匹配
- 正则表达式
- 结构体函数
- 文本函数
- 时间函数
- 时间戳函数
- 带时区时间戳函数
- 联合函数
- 实用函数
- 窗口函数
- 约束
- 索引
- 元查询
- DuckDB 的 SQL 方言
- 示例
- 配置
- 扩展
- 核心扩展
- 概览
- 自动补全
- Avro
- AWS
- Azure
- Delta
- DuckLake
- 编码
- Excel
- 全文搜索
- httpfs (HTTP 和 S3)
- Iceberg
- ICU
- inet
- jemalloc
- MySQL
- PostgreSQL
- 空间
- SQLite
- TPC-DS
- TPC-H
- UI(用户界面)
- VSS
- 指南
- 概览
- 数据查看器
- 数据库集成
- 文件格式
- 概览
- CSV 导入
- CSV 导出
- 直接读取文件
- Excel 导入
- Excel 导出
- JSON 导入
- JSON 导出
- Parquet 导入
- Parquet 导出
- 查询 Parquet 文件
- 使用 file: 协议访问文件
- 网络和云存储
- 概览
- HTTP Parquet 导入
- S3 Parquet 导入
- S3 Parquet 导出
- S3 Iceberg 导入
- S3 Express One
- GCS 导入
- Cloudflare R2 导入
- 通过 HTTPS / S3 使用 DuckDB
- Fastly 对象存储导入
- 元查询
- ODBC
- 性能
- Python
- 安装
- 执行 SQL
- Jupyter Notebooks
- marimo Notebooks
- Pandas 上的 SQL
- 从 Pandas 导入
- 导出到 Pandas
- 从 Numpy 导入
- 导出到 Numpy
- Arrow 上的 SQL
- 从 Arrow 导入
- 导出到 Arrow
- Pandas 上的关系型 API
- 多个 Python 线程
- 与 Ibis 集成
- 与 Polars 集成
- 使用 fsspec 文件系统
- SQL 编辑器
- SQL 功能
- 代码片段
- 故障排除
- 术语表
- 离线浏览
- 操作手册
- 开发
- 内部结构
- 为什么选择 DuckDB
- 行为准则
- 发布日历
- 路线图
- 站点地图
- 在线演示
文档 / 操作手册 / 日志记录
日志记录
DuckDB 包含一种日志记录机制,用于向用户提供额外信息,例如查询执行详情、性能指标和系统事件。
基础知识
DuckDB 的日志记录机制可以使用 pragmas(实用指令)启用或禁用。默认情况下,日志存储在一个名为 duckdb_logs
的特殊表中,可以像查询其他表一样查询它。
示例
PRAGMA enable_logging;
-- Run some queries..
SELECT * FROM duckdb_logs;
日志级别
DuckDB 支持不同的日志级别来控制日志的详细程度
ERROR
: 仅记录错误消息WARNING
: 记录警告和错误INFO
: 记录一般信息、警告和错误(默认)DEBUG
: 记录详细的调试信息TRACE
: 记录非常详细的跟踪信息
日志级别可以使用以下方式设置
PRAGMA enable_logging;
SET logging_level = 'TRACE';
日志类型
在 DuckDB 中,日志消息可以关联一个日志类型。日志类型有两个主要目标。首先,它们允许使用包含列表(includelists)和排除列表(excludelist)来限制记录哪些类型的日志消息。其次,日志类型可以有一个预定的消息模式,这允许 DuckDB 自动将消息解析回结构化数据类型。
特定于日志的类型
只记录特定类型的消息
PRAGMA enable_logging('HTTP');
上述实用指令将自动设置正确的日志级别,并将 HTTP
类型添加到 enabled_log_types
设置中。
结构化日志记录
某些日志类型(如 HTTP
)将具有关联的消息模式。为了让 DuckDB 自动解析消息,请使用 duckdb_logs_parsed()
宏。例如
SELECT request.headers FROM duckdb_logs_parsed('HTTP');
可用日志类型列表
这是 DuckDB 中可用日志类型的一个(非详尽)列表。
日志类型 | 描述 | 结构化 |
---|---|---|
QueryLog(查询日志) |
记录在 DuckDB 中执行的查询 | 否 |
FileSystem(文件系统) |
记录所有与 DuckDB 文件系统的文件系统交互 | 是 |
HTTP |
记录 DuckDB 内部 HTTP 客户端的所有 HTTP 流量 | 是 |
日志存储
默认情况下,DuckDB 将日志记录到内存日志存储中。另外,DuckDB 可以直接使用以下方式将日志记录到 stdout
PRAGMA enable_logging;
SET logging_storage = 'stdout';