温馨提示×

debian中nodejs日志怎开启

小樊
42
2026-09-22 10:54:33
栏目: 编程语言

在 Debian 系统中,“Node.js 日志怎么开启”通常取决于你是自己写的 Node.js 程序,还是通过系统服务(如 systemd)运行的 Node.js 应用。下面分情况说明。


一、Node.js 应用自身日志(最基本方式)

1. 使用 console 输出(最简单)

console.log('普通日志');
console.error('错误日志');

运行:

node app.js

日志会直接输出到终端。


2. 写入日志文件

const fs = require('fs');

fs.appendFileSync('app.log', `${new Date()} 启动成功\n`);

或使用 winstonpino 等日志库(推荐):

npm install winston

二、通过 systemd 运行 Node.js(Debian 常见方式)

如果你是 Debian 10/11/12,通常用 systemd 管理 Node 服务。

1. 创建 systemd 服务

sudo nano /etc/systemd/system/nodeapp.service

示例:

[Unit]
Description=Node.js App
After=network.target

[Service]
ExecStart=/usr/bin/node /var/www/app/app.js
WorkingDirectory=/var/www/app
User=www-data
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodeapp

[Install]
WantedBy=multi-user.target

2. 重载并启动

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

3. 查看日志(关键)

journalctl -u nodeapp

实时查看:

journalctl -u nodeapp -f

三、使用 PM2(非常常见)

1. 安装 PM2

npm install -g pm2

2. 启动应用

pm2 start app.js

3. 查看日志

pm2 logs

日志默认在:

~/.pm2/logs/

四、Nginx + Node.js 的情况

如果是反向代理:

  • Node 日志:上面任意方式
  • Nginx 日志:
/var/log/nginx/access.log
/var/log/nginx/error.log

五、常见问题

  • 没有日志? 检查是否输出到 stdout/stderr
  • systemd 看不到日志? 确认 StandardOutput=syslog
  • 权限问题? 日志目录需对运行用户可写

如果你能告诉我:

  • 自己写的脚本 还是 某个现成项目
  • 是否使用 systemd / pm2 / docker

我可以给你更精确的配置示例。

0