温馨提示×

Nodejs日志Ubuntu如何开启

小樊
36
2026-07-21 19:20:45
栏目: 编程语言

在 Ubuntu 上开启 Node.js 日志,常见有 应用层日志系统层日志 两种。下面按“从简单到规范”的方式给你说明。


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

1️⃣ 使用 console.log / console.error

最简单,但不推荐用于生产

console.log('应用启动');
console.error('发生错误');

日志会输出到 标准输出 / 标准错误,取决于你如何运行。


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

常用库

  • winston(最常用)
  • pino(性能最好)
  • bunyan

示例: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('数据库错误');

日志文件会生成在:

your-project/error.log
your-project/combined.log

二、Ubuntu 系统层面查看 Node.js 日志

1️⃣ 前台运行

node app.js

日志直接输出到终端。


2️⃣ 后台运行(nohup)

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

查看日志:

tail -f app.log

3️⃣ 使用 systemd(✅ 生产环境推荐)

创建服务

sudo nano /etc/systemd/system/nodeapp.service
[Unit]
Description=Node.js App
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/app
ExecStart=/usr/bin/node /home/ubuntu/app/app.js
Restart=always
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

启动服务

sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp

查看日志(重点 ✅)

journalctl -u nodeapp -f

或查看历史:

journalctl -u nodeapp --since "10 min ago"

三、结合 Nginx / PM2(常见组合)

1️⃣ PM2(非常常用)

npm install -g pm2
pm2 start app.js

查看日志:

pm2 logs
pm2 logs app

日志路径:

~/.pm2/logs/

四、日志级别建议

级别 用途
info 正常信息
warn 警告
error 错误
debug 调试

五、总结(推荐方案)

场景 推荐方式
本地开发 console / pino
生产环境 winston + systemd
简单部署 PM2
系统级 journalctl

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

  • ✅ 是 开发环境还是生产环境
  • ✅ 是否使用 PM2 / Docker / Nginx
  • ✅ Ubuntu 版本

我可以给你一套完全适配你项目的日志方案

0