日志是帮助我们定位系统问题的重要手段。NocoBase 的服务端日志主要包括接口请求日志和系统运行日志,支持日志级别、滚动策略、大小、打印格式等配置。本篇文档主要介绍 NocoBase 服务端日志的相关内容,以及如何使用日志插件提供的服务端日志打包和下载的功能。
可以通过 环境变量 配置日志级别、输出方式、打印格式等的日志相关参数。
NocoBase 支持配置4种不同的日志格式。
console开发环境默认格式,消息以高亮颜色显示。
json生产环境默认格式。
logfmtdelimiter分隔符 | 分割。
NocoBase 日志文件的主要目录结构为:
storage/logs - 日志输出目录
main - 主应用名称
request_YYYY-MM-DD.log - 请求日志system_YYYY-MM-DD.log - 系统日志system_error_YYYY-MM-DD.log - 系统错误日志sql_YYYY-MM-DD.log - SQL 执行日志sub-app - 子应用名称
request_YYYY-MM-DD.logrequest_YYYY-MM-DD.log, 接口请求和响应日志。
| 字段 | 说明 |
|---|---|
level | 日志级别 |
timestamp | 日志打印时间 YYYY-MM-DD hh:mm:ss |
message | request 或 response |
userId | response 中才有 |
method | 请求方法 |
path | 请求路径 |
req / res | 请求/响应内容 |
action | 请求资源和参数 |
status | 响应状态码 |
cost | 请求耗时 |
app | 当前应用名称 |
reqId | 请求 ID |
reqId 会通过 X-Request-Id 响应头携带给前端。
system_YYYY-MM-DD.log, 应用、中间件、插件等系统运行日志,error 级别日志会单独打印到 system_error_YYYY-MM-DD.log
| 字段 | 说明 |
|---|---|
level | 日志级别 |
timestamp | 日志打印时间 YYYY-MM-DD hh:mm:ss |
message | 日志消息 |
module | 模块 |
submodule | 子模块 |
method | 调用方法 |
meta | 其他相关信息, JSON 格式 |
app | 当前应用名称 |
reqId | 请求 ID |
sql_YYYY-MM-DD.log, 数据库 SQL 执行日志。其中 INSERT INTO 语句仅保留前 2000 个字符。
| 字段 | 说明 |
|---|---|
level | 日志级别 |
timestamp | 日志打印时间 YYYY-MM-DD hh:mm:ss |
sql | SQL 语句 |
app | 当前应用名称 |
reqId | 请求 ID |
