logologo
开始
手册
开发
插件
API
首页
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
开始
手册
开发
插件
API
首页
logologo

日志

服务端日志
服务端日志、审计日志、历史记录

遥测

使用说明

导出器

HTTP
Prometheus
Next Page服务端日志

#日志

该功能由插件 «日志» 提供

#介绍

日志是帮助我们定位系统问题的重要手段。NocoBase 的服务端日志主要包括接口请求日志和系统运行日志,支持日志级别、滚动策略、大小、打印格式等配置。本篇文档主要介绍 NocoBase 服务端日志的相关内容,以及如何使用日志插件提供的服务端日志打包和下载的功能。

#日志配置

可以通过 环境变量 配置日志级别、输出方式、打印格式等的日志相关参数。

#日志格式

NocoBase 支持配置4种不同的日志格式。

#console

开发环境默认格式,消息以高亮颜色显示。

2023-12-30 22:40:06 [info]  response                                     method=GET path=/api/uiSchemas:getJsonSchema/nocobase-admin-menu res={"status":200} action={"actionName":"getJsonSchema","resourceName":"uiSchemas","params":{"filterByTk":"nocobase-admin-menu","resourceName":"uiSchemas","resourceIndex":"nocobase-admin-menu","actionName":"getJsonSchema"}} userId=1 status=200 cost=5 app=main reqId=ccf4e3bd-beb0-4350-af6e-b1fc1d9b6c3f
2023-12-30 22:43:12 [debug] Database dialect: mysql                      module=application method=install app=main reqId=31ffa8b5-f377-456b-a295-0c8a28938228
2023-12-30 22:43:12 [warn]  app is installed                             module=application method=install app=main reqId=31ffa8b5-f377-456b-a295-0c8a28938228

#json

生产环境默认格式。

{
  "level": "info",
  "timestamp": "2023-12-26 22:04:56",
  "reqId": "7612ef42-58e8-4c35-bac2-2e6c9d8ec96e",
  "message": "response",
  "method": "POST",
  "path": "/api/authenticators:publicList",
  "res": { "status": 200 },
  "action": {
    "actionName": "publicList",
    "resourceName": "authenticators",
    "params": { "resourceName": "authenticators", "actionName": "publicList" }
  },
  "status": 200,
  "cost": 16
}

#logfmt

https://brandur.org/logfmt.

level=info timestamp=2023-12-21 14:18:02 reqId=8b59a40d-68ee-4c97-8001-71a47a92805a
message=response method=POST path=/api/authenticators:publicList res={"status":200}
action={"actionName":"publicList","resourceName":"authenticators","params":{"resourceName":"authenticators","actionName":"publicList"}}
userId=undefined status=200 cost=14

#delimiter

分隔符 | 分割。

info|2023-12-26 22:07:09|13cd16f0-1568-418d-ac37-6771ee650e14|response|POST|/api/authenticators:publicList|{"status":200}|{"actionName":"publicList","resourceName":"authenticators","params":{"resourceName":"authenticators","actionName":"publicList"}}||200|25

#日志目录

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.log
      • ...

#日志文件

#请求日志

request_YYYY-MM-DD.log, 接口请求和响应日志。

字段说明
level日志级别
timestamp日志打印时间 YYYY-MM-DD hh:mm:ss
messagerequest 或 response
userIdresponse 中才有
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 执行日志

sql_YYYY-MM-DD.log, 数据库 SQL 执行日志。其中 INSERT INTO 语句仅保留前 2000 个字符。

字段说明
level日志级别
timestamp日志打印时间 YYYY-MM-DD hh:mm:ss
sqlSQL 语句
app当前应用名称
reqId请求 ID

#日志打包下载

  1. 进入日志管理页面。
  2. 选择想要下载的日志文件。
  3. 点击下载 (Download) 按钮。

2024-04-10_10-50-50

#相关文档

  • 插件开发 - 服务端 - 日志
  • API参考 - @nocobase/logger