在 Ubuntu 上导出 Node.js 日志,常见做法取决于你的 Node.js 是如何运行的(直接运行、PM2、systemd、Docker 等)。下面按常见场景说明。
如果你是这样启动的:
node app.js
日志默认在终端输出,可以重定向到文件:
node app.js > app.log 2>&1
导出已有日志(如果还在终端):
# 无法事后导出,只能提前重定向
✅ 推荐:以后都使用重定向或日志库
pm2 logs
PM2 日志默认在:
~/.pm2/logs/
直接复制即可:
cp ~/.pm2/logs/* ./backup_logs/
pm2 logs app --lines 1000 > app.log
如果你的 Node.js 是 systemd 服务:
journalctl -u node-app.service
journalctl -u node-app.service > node-app.log
journalctl -u node-app.service --since "2024-01-01" --until "2024-01-31" > node.log
docker logs <container_id>
docker logs <container_id> > node_docker.log 2>&1
使用日志库(如 winston):
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: 'app.log' })
]
});
logger.info('Hello');
直接导出:
cp app.log /backup/
| 运行方式 | 导出方式 |
|---|---|
| 命令行 | > log.txt 2>&1 |
| PM2 | ~/.pm2/logs/ |
| systemd | journalctl -u 服务名 |
| Docker | docker logs |
| 日志库 | 直接复制日志文件 |
如果你愿意,可以告诉我:
console.log 还是写文件?我可以给你最合适的命令。