在 Ubuntu 上,Node.js 本身的日志格式并没有固定标准,主要取决于你用的运行方式和日志库。下面分情况说明:
如果你直接运行:
node app.js
日志就是 标准输出(stdout / stderr),格式就是你在代码里写的:
console.log("server started");
console.error("error occurred");
示例输出:
server started
error occurred
格式特点
如果你用 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
格式特点
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
默认 JSON:
{"level":30,"time":1718190000000,"msg":"server started","pid":1234}
GET /api/user 200 12ms
| 场景 | 格式 |
|---|---|
| console.log | 纯文本 |
| systemd | 时间 + 主机 + 进程 + 文本 |
| Winston | JSON / 自定义文本 |
| Pino | JSON |
| Morgan | HTTP 访问日志 |
Winston / Pinosystemd 或 PM2 管理logrotate 防止日志爆炸如果你愿意,可以告诉我:
我可以给你一个具体日志格式示例和配置。