关于 serverpod-logging
面向 Serverpod 开发者的日志记录技能,可在请求期间写入日志并配置存储与输出。日志可通过 serverpod MCP 服务或 Serverpod Insights 查看。
主要功能
- 01使用 session.log() 记录请求日志
- 02数据库与控制台输出
- 03可配置保留期限与清理
- 04通过 Serverpod Insights 检查日志
适用场景
- 01记录请求中的警告与异常
- 02在 Serverpod Insights 查看失败或缓慢调用
MCP 相关
日志可通过 serverpod MCP 服务读取。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ serverpod/ serverpod --skill serverpod-logging安装后在 Claude Code 中输入/serverpod-logging确认已加载。
详细介绍
Serverpod 日志记录
在请求期间使用 session.log()。会话关闭时,日志会刷新。日志会存储在数据库中和/或打印到控制台。
用法
session.log('Operation completed');
session.log('Something went wrong',
level: LogLevel.warning,
exception: e,
stackTrace: stackTrace);
未捕获的端点异常会作为会话失败记录在 serverpod_session_log 中。
日志目标
- 可通过
serverpodMCP 服务读取日志。 - 数据库: 表
serverpod_log、serverpod_query_log、serverpod_session_log(启用持久化时) - 控制台: 启用控制台日志记录时(格式为
text或json)
默认情况下,配置数据库时会启用持久化日志记录,且仅适用于 PostgreSQL(SQLite 不支持持久化会话日志)。未配置数据库以及处于 development 运行模式时,会启用控制台日志记录;在 development 运行模式下,控制台格式为 text,在其他运行模式下为 json。
配置
在配置 YAML 的 sessionLogs: 下设置:
| 设置 | 默认值 |
|---|---|
| persistentEnabled | true(配置数据库时) |
| consoleEnabled | true(未配置数据库时,或处于 development 运行模式时) |
| consoleLogFormat | text(development),json(其他模式) |
| cleanupInterval | 24h |
| retentionPeriod | 90d |
| retentionCount | 100000 |
每项设置都对应一个 SERVERPOD_SESSION_* 环境变量,详见 serverpod-configuration/references/environment-variables.md。
设置保留策略,避免日志表无限增长。请勿记录敏感数据。
Serverpod Insights
配套应用,可用于查看、搜索和筛选日志,并检查失败或缓慢的调用。使用 Serverpod Cloud 时会自动提供。
评论
支持 Markdown