在 Ubuntu 上开启 Node.js 日志,通常分几种场景。下面按常见用法给你说明:
Node.js 自带 console,直接输出即可:
console.log('普通日志');
console.error('错误日志');
运行:
node app.js
查看日志:
node app.js > app.log 2>&1
>:标准输出2>&1:错误也写入npm install winston
示例:
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: 'app.log' }),
new winston.transports.Console()
]
});
logger.info('服务启动');
npm install -g pm2
pm2 start app.js
pm2 logs
pm2 start app.js --log /var/log/node/app.log
如果你用 systemd 运行 Node:
# /etc/systemd/system/node.service
[Service]
ExecStart=/usr/bin/node /home/user/app.js
StandardOutput=syslog
StandardError=syslog
查看日志:
journalctl -u node.service
如果你用 Nginx:
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
| 场景 | 方法 |
|---|---|
| 本地调试 | console.log |
| 生产 | winston + pm2 |
| 系统服务 | systemd journal |
如果你能说下:
我可以给你更精确的配置。