温馨提示×

ubuntu nodejs日志格式是什么

小樊
35
2026-09-18 14:53:47
栏目: 编程语言

Ubuntu 上,Node.js 本身没有固定、统一的“官方日志格式”。日志长什么样,主要取决于你用的运行方式、日志库、以及进程管理器。下面按常见场景给你梳理:


1️⃣ 直接运行 Node.js(最原始)

node app.js

日志来源

  • console.log
  • console.error

常见格式

hello world
Error: something wrong
    at app (/app.js:10:3)

✅ 特点:

  • 纯文本
  • 无时间戳
  • 无日志级别
  • 直接输出到 stdout / stderr

2️⃣ Ubuntu 系统服务(systemd)

如果你用:

systemctl start my-node-app

日志查看

journalctl -u my-node-app

日志格式(systemd 管理)

Aug 21 10:32:01 ubuntu node[1234]: Server started on port 3000
Aug 21 10:32:05 ubuntu node[1234]: Error: DB connection failed

✅ 特点:

  • 时间 + 主机名 + 进程名 + PID
  • 自动加时间戳
  • systemd journal 管理

3️⃣ 使用 PM2(最常见)

pm2 start app.js

查看日志

pm2 logs

默认日志格式

YYYY-MM-DD HH:mm:ss: 信息

示例:

2024-08-21 10:32:01: App listening on 3000
2024-08-21 10:32:05: Unhandled rejection detected

✅ 特点:

  • 带时间戳
  • 多进程友好
  • 日志文件通常在:
~/.pm2/logs/

4️⃣ 使用日志库(推荐)

常见库

  • winston
  • pino
  • bunyan

示例(Winston)

logger.info('User logged in', { userId: 1 });

输出(JSON 示例)

{
  "level": "info",
  "message": "User logged in",
  "userId": 1,
  "timestamp": "2024-08-21T10:32:01.123Z"
}

✅ 生产环境推荐格式:

  • JSON
  • level / time / message / context

5️⃣ Nginx + Node.js(常见架构)

Node 日志 → 应用日志
Nginx 日志 → 访问日志

Nginx 默认格式

IP - - [time] "GET /api HTTP/1.1" 200 123

✅ 总结对照表

场景 日志格式 是否带时间
node 直接运行 纯文本
systemd 系统日志格式
PM2 时间戳 + 文本
Winston/Pino JSON / 自定义
Nginx 访问日志

如果你能补充说明:

  • ✅ Ubuntu 版本
  • ✅ Node 运行方式(systemd / pm2 / docker)
  • ✅ 是否使用日志库

我可以给你更精确的日志格式或配置示例

0