温馨提示×

Nodejs日志Debian如何开启

小樊
46
2026-07-27 13:44:49
栏目: 编程语言

Debian 上开启 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('出错了');

日志文件会生成在当前目录(可改为绝对路径)。


二、在 Debian 上查看 Node.js 日志

1️⃣ 直接运行 Node.js

node app.js > app.log 2>&1
  • > app.log:标准输出
  • 2>&1:错误日志也写入

2️⃣ 使用 systemd(生产环境 ✅)

示例:创建服务

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

[Service]
User=node
WorkingDirectory=/var/www/app
ExecStart=/usr/bin/node /var/www/app/app.js
Restart=always
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

启动并查看日志:

sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl status nodeapp

查看日志:

journalctl -u nodeapp -f

这是 Debian / Ubuntu 官方推荐方式


三、PM2(Node.js 专用进程管理器,强烈推荐)

安装

npm install -g pm2

启动应用

pm2 start app.js --name myapp

查看日志

pm2 logs myapp
pm2 logs myapp --lines 100

日志位置:

~/.pm2/logs/

开机自启:

pm2 startup
pm2 save

生产环境最常用


四、Nginx 反向代理日志(如果是 Web 服务)

如果 Node.js 在 Nginx 后面:

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

查看:

tail -f /var/log/nginx/access.log

五、常见问题排查

Node.js 没日志?

  • 是否用了 winston 但没加 transports
  • 是否输出到 stdout 但没重定向
  • systemd 没配置 StandardOutput

Debian 没有日志?

journalctl --no-pager

六、推荐生产方案(总结)

场景 推荐
本地开发 console.log
生产部署 PM2 + winston
系统级管理 systemd
Web 服务 Nginx + Node

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

  • ✅ Debian 版本
  • ✅ Node.js 启动方式(手动 / systemd / PM2)
  • ✅ 是 API 服务还是前端项目

我可以 直接帮你写一份可用的完整配置

0