Skip to main content
Arupa 通过一个结构化的日志记录器写入内核和服务日志。默认输出格式为 JSON,因此可以按字段收集和搜索记录。您可以在终端中直接查看日志时切换到文本输出。

配置日志记录

[Log] 部分设置进程级日志记录选项:
默认值为 Format = "json"Level = "info"。级别过滤是包含性的:warn 会发出警告和错误,而 debug 会发出所有级别的日志。这些值不区分大小写。 配置加载时会报告配置错误。启动时,无效的日志记录设置会导致内核使用其默认值;重新加载期间,无效的配置会使当前配置保持生效。对 [Log] 的更改会在内核启动、创建日志记录器时生效;重新加载配置会更新诸如服务这类运行时设置,但不会替换已经在运行的日志记录器。

常用字段

每条内核日志都用两个字段标识其来源:
component 标识生成该记录的信任边界。from 标识内核子系统。常见的值包括:
  • http,用于 HTTP 访问记录;
  • service_manager,用于服务发现和生命周期记录;以及
  • configservercli,分别用于配置、服务器和命令行活动。
服务通过已认证的主机边界发出的日志使用以下格式:
内核会从已认证的 gRPC 回调或 WASM 绑定上下文中推导出服务名称。服务无法通过提供不同的来源名称来更改这一归属。这适用于 wasmgrpc 服务;static 服务没有运行中的进程,因此永远不会发出自己的日志记录。服务协议本身没有变化,归属信息是由内核的主机日志层附加的。

调试源位置

Level = "debug" 时,日志记录器会自动为记录添加 source 字段,记录应用程序的调用位置。这有助于定位发出诊断记录的代码,但会增大每条记录的体积,通常也会增加日志量。 请勿将 sourcefrom 混淆:
  • source 是仅用于调试的日志记录器调用位置;而
  • from 是稳定的内核子系统或服务标识。
infowarnerror 级别下,调用位置的 source 字段会被省略。

HTTP 访问日志

内核会在每次 HTTP 请求后发出一条访问记录,包括由内核路由和服务路由处理的请求(无论该路由是被动态处理,还是通过静态传输提供打包文件)。 每条记录包含: 访问记录使用 component=kernelfrom=http。其日志级别根据最终状态选择:
  • 4xx 响应记录为 WARN
  • 5xx 响应记录为 ERROR;以及
  • 其余响应记录为 INFO
请求体、请求头和查询字符串不会包含在此访问记录中。如果应用程序把敏感值放在路径片段中,路径本身仍可能包含敏感信息。

选择日志级别

正常运行时使用 info。它包含 HTTP 访问记录和服务生命周期记录。 当您需要排查被拒绝的请求、不可用的命名空间或其他可恢复的情况时,使用 warn。当您需要排查失败的请求或操作时,使用 error 当您需要临时诊断路由选择结果、成功的事件处理过程,或某条日志记录的确切调用位置时,使用 debug。诊断完成后请恢复为 info,以减少日志量,避免收集超出必要程度的诊断细节。