在 Debian 系统中,“开启 Node.js 日志”通常有以下几种场景,下面分别说明:
Node.js 本身不自动写日志文件,日志需要你在代码中输出,例如:
console.log('服务启动');
console.error('出错了');
运行:
node app.js
查看:
node app.js > app.log 2>&1
常用库:
winstonpinolog4js示例(winston):
npm install winston
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: 'app.log' })
]
});
logger.info('应用启动');
如果是用 systemd 启动 Node.js 服务,日志由 journald 管理。
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=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start nodeapp
sudo systemctl enable nodeapp
journalctl -u nodeapp -f
如果你用 Nginx:
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
npm install -g pm2
pm2 start app.js
pm2 logs
日志默认在:
~/.pm2/logs/
NODE_DEBUG=* node app.js
或指定模块:
NODE_DEBUG=http,net node app.js
| 场景 | 推荐方式 |
|---|---|
| 本地开发 | console / pino |
| 生产服务 | systemd + journalctl |
| 多进程 | PM2 |
| Web 服务 | Nginx 日志 |
如果你能说明:
我可以给你更精确的配置示例。