温馨提示×

Ubuntu Nodejs日志如何开启

小樊
35
2026-08-05 09:49:49
栏目: 编程语言

在 Ubuntu 上开启或配置 Node.js 日志,取决于你是想看 Node.js 本身的运行日志,还是 Node.js 应用的业务日志。下面按常见场景给你一个完整说明。


一、Node.js 应用日志(最常见)

1️⃣ 使用 console.log / console.error(最简单)

Node.js 默认会把日志输出到 标准输出 / 标准错误

node app.js
  • console.log() → stdout
  • console.error() → stderr

查看方式:

node app.js > app.log 2>&1

2️⃣ 使用日志库(推荐 ✅)

常用日志库

  • winston(最常用)
  • pino(性能最好)
  • morgan(HTTP 请求日志)

示例:winston

npm install winston
const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

logger.info('服务启动');
logger.error('出错了');

日志文件会生成在当前目录。


二、PM2 管理 Node.js(生产环境强烈推荐 ✅)

如果你用 PM2 运行 Node.js,日志是自动开启的。

1️⃣ 安装 PM2

npm install -g pm2

2️⃣ 启动应用

pm2 start app.js --name my-app

3️⃣ 查看日志

pm2 logs
pm2 logs my-app

4️⃣ 日志文件路径

~/.pm2/logs/

例如:

my-app-out.log
my-app-error.log

5️⃣ 设置日志大小限制(防止磁盘爆满)

pm2 install pm2-logrotate

三、systemd 服务方式(Ubuntu 官方推荐)

如果你把 Node.js 做成系统服务:

1️⃣ 查看 journal 日志

journalctl -u your-node-service.service -f

2️⃣ 开启 systemd 日志

sudo systemctl edit your-node-service

添加:

[Service]
StandardOutput=journal
StandardError=journal

四、Nginx + Node.js 日志

如果是 Web 服务:

Nginx 日志

/var/log/nginx/access.log
/var/log/nginx/error.log

Node.js 日志

  • 看 PM2 或应用自身日志

五、调试日志(开发阶段)

1️⃣ 使用 NODE_DEBUG

NODE_DEBUG=* node app.js

2️⃣ 使用 debug 模块

npm install debug
const debug = require('debug')('app');
debug('调试信息');

启动:

DEBUG=app node app.js

六、推荐最佳实践 ✅

场景 推荐方式
本地开发 console / debug
生产环境 PM2 + winston
系统服务 systemd journal
高并发 pino

七、快速判断你现在有没有日志

ps aux | grep node
ls ~/.pm2/logs
journalctl -f

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

  • ✅ 你是 本地 / 服务器
  • ✅ 是否使用 PM2 / Docker / systemd
  • ✅ 是 Express / NestJS / 原生 Node

我可以给你一个 完全贴合你环境的日志配置方案

0