温馨提示×

ubuntu nodejs日志什么格式

小樊
40
2026-10-09 10:53:17
栏目: 编程语言

在 Ubuntu 上,Node.js 本身的日志格式并没有固定标准,主要取决于你用的运行方式和日志库。下面分情况说明:


一、Node.js 默认输出(无日志库)

如果你直接运行:

node app.js

日志就是 标准输出(stdout / stderr),格式就是你在代码里写的:

console.log("server started");
console.error("error occurred");

示例输出:

server started
error occurred

格式特点

  • 纯文本
  • 无时间戳
  • 无日志级别
  • 一行一条

二、Ubuntu + systemd(最常见生产环境)

如果你用 systemd 管理 Node.js 服务:

systemctl start mynode.service
journalctl -u mynode

日志格式由 systemd journal 决定,例如:

Jun 12 10:23:45 ubuntu node[1234]: server started
Jun 12 10:23:46 ubuntu node[1234]: error occurred

格式特点

  • 时间戳(系统时间)
  • 主机名
  • 进程名 / PID
  • 你的 console 输出内容

三、常见 Node.js 日志库格式

1️⃣ Winston(最常用)

logger.info("user login");

默认格式示例:

{"level":"info","message":"user login","timestamp":"2024-06-12T10:23:45.123Z"}

可配置为:

2024-06-12 10:23:45 [INFO] user login

2️⃣ Pino(高性能)

默认 JSON:

{"level":30,"time":1718190000000,"msg":"server started","pid":1234}

3️⃣ Morgan(HTTP 请求日志)

GET /api/user 200 12ms

四、常见日志格式总结

场景 格式
console.log 纯文本
systemd 时间 + 主机 + 进程 + 文本
Winston JSON / 自定义文本
Pino JSON
Morgan HTTP 访问日志

五、推荐做法(生产环境)

  • ✅ 使用 Winston / Pino
  • ✅ 输出 JSON 格式
  • ✅ 用 systemd 或 PM2 管理
  • ✅ 配合 logrotate 防止日志爆炸

如果你愿意,可以告诉我:

  • 你是 开发还是生产
  • 用的是 PM2 / systemd / Docker
  • 是否用了 Winston / Pino

我可以给你一个具体日志格式示例和配置。

0 踩