温馨提示×

怎样导出ubuntu nodejs日志

小樊
44
2026-09-30 15:57:38
栏目: 编程语言

在 Ubuntu 上导出 Node.js 日志,常见做法取决于你的 Node.js 是如何运行的(直接运行、PM2、systemd、Docker 等)。下面按常见场景说明。


一、直接运行 Node.js(控制台输出)

如果你是这样启动的:

node app.js

日志默认在终端输出,可以重定向到文件:

node app.js > app.log 2>&1

导出已有日志(如果还在终端):

# 无法事后导出,只能提前重定向

✅ 推荐:以后都使用重定向或日志库


二、使用 PM2(最常见)

1. 查看日志路径

pm2 logs

2. 导出日志文件

PM2 日志默认在:

~/.pm2/logs/

直接复制即可:

cp ~/.pm2/logs/* ./backup_logs/

3. 导出指定进程日志

pm2 logs app --lines 1000 > app.log

三、使用 systemd(服务方式)

如果你的 Node.js 是 systemd 服务:

1. 查看日志

journalctl -u node-app.service

2. 导出日志到文件

journalctl -u node-app.service > node-app.log

3. 按时间导出

journalctl -u node-app.service --since "2024-01-01" --until "2024-01-31" > node.log

四、Docker 中运行 Node.js

查看日志

docker logs <container_id>

导出日志

docker logs <container_id> > node_docker.log 2>&1

五、Node.js 自身写日志(推荐)

使用日志库(如 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
日志库 直接复制日志文件

如果你愿意,可以告诉我:

  • Node.js 是怎么启动的?
  • 日志是 console.log 还是写文件?
  • 想要实时导出还是历史日志?

我可以给你最合适的命令。

0 踩