在 Debian 上,“Node.js 日志”通常有两种理解,下面分别说明如何开启/配置。
Node.js 默认不会自动写系统日志,需要你在代码里输出日志。
console.log('server start');
console.error('error happened');
日志会输出到:
const fs = require('fs');
fs.appendFileSync('/var/log/node-app.log', 'hello\n');
建议用成熟日志库:
winstonpinobunyanDebian 10+ 默认使用 systemd,这是最正规的开日志方式。
sudo nano /etc/systemd/system/node-app.service
示例:
[Unit]
Description=Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /opt/app/index.js
WorkingDirectory=/opt/app
User=www-data
Environment=NODE_ENV=production
StandardOutput=journal
StandardError=journal
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start node-app
sudo systemctl enable node-app
journalctl -u node-app
实时查看:
journalctl -u node-app -f
如果你想让 Node.js 写进 /var/log/syslog:
上面配置后:
journalctl -u node-app
Debian 默认会转发到 rsyslog(如果已安装)
const log4js = require('log4js');
log4js.configure({
appenders: { file: { type: 'file', filename: '/var/log/node-app.log' } },
categories: { default: { appenders: ['file'], level: 'info' } }
});
systemdconsole.log✅ systemd + journald
✅ 日志库(winston / pino)
❌ 不要 nohup 裸跑
如果你能说明:
我可以给你更精确的配置示例。