温馨提示×

nodejs日志ubuntu如何导出

小樊
41
2026-09-03 11:03:57
栏目: 编程语言

在 Ubuntu 上导出 Node.js 日志,通常取决于日志是写到文件、还是输出到控制台(stdout/stderr),以及你是用什么方式运行 Node.js 的(直接 node、pm2、systemd、Docker 等)。下面按常见情况说明:


一、Node.js 日志写到文件(最常见)

如果你的代码类似这样:

const fs = require('fs');
fs.appendFileSync('app.log', 'something happened\n');

或者直接用了日志库(winston、pino 等)写到文件。

导出方法

cp app.log /path/to/backup/app.log

scp app.log user@remote:/backup/

查看并导出:

cat app.log > app_export.log

二、Node.js 日志输出到控制台(stdout / stderr)

例如:

console.log('server started');

1. 手动运行时

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

之后再导出 app.log

2. 已经运行的进程

如果你没重定向,可以用:

script -c "node app.js" app.log

(不推荐长期使用)


三、使用 PM2(非常常见)

查看日志

pm2 logs

导出日志文件

PM2 默认日志位置:

~/.pm2/logs/

导出:

cp ~/.pm2/logs/* /backup/logs/

或指定应用:

pm2 logs app --lines 1000 > app.log

四、使用 systemd(ubuntu 服务)

如果你用 systemd 启动 Node.js:

查看日志

journalctl -u your-node-service.service

导出到文件

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

导出最近 1000 行:

journalctl -u your-node-service.service -n 1000 > node.log

导出某时间段:

journalctl -u your-node-service.service --since "2024-01-01" --until "2024-01-02" > node.log

五、Docker 中的 Node.js

查看日志

docker logs container_name

导出

docker logs container_name > node.log 2>&1

六、日志太大时的建议

tail -n 5000 app.log > small.log
grep "ERROR" app.log > error.log

七、常见组合示例

systemd + Node.js 导出错误日志:

journalctl -u node-app.service | grep ERROR > error.log

如果你能告诉我:

  • ✅ 怎么运行 Node.js(node / pm2 / systemd / docker)
  • ✅ 日志现在在哪(文件 / 控制台)
  • ✅ 想导出到哪(本地 / 远程 / 压缩)

我可以给你一条精确命令

0