温馨提示×

怎样导出debian nodejs日志

小樊
45
2026-09-04 02:47:22
栏目: 编程语言

在 Debian 上导出 Node.js 日志,方式取决于你的 Node.js 是怎么运行的(直接运行、systemd、PM2、Docker 等)。下面按常见情况说明。


一、Node.js 直接运行(终端启动)

如果你是这样启动的:

node app.js

1. 重定向到文件

node app.js > app.log 2>&1
  • >:标准输出
  • 2>&1:错误输出也写入

2. 实时导出并保存

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

二、使用 systemd(Debian 推荐方式)

如果是通过 systemd 服务运行(如 /etc/systemd/system/nodeapp.service):

1. 查看日志

journalctl -u nodeapp.service

2. 导出日志到文件

journalctl -u nodeapp.service > nodeapp.log

3. 导出最近 100 行

journalctl -u nodeapp.service -n 100 > nodeapp.log

4. 导出某时间段

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

三、使用 PM2(最常见 Node.js 进程管理)

1. 查看日志

pm2 logs

2. 导出某个应用日志

pm2 logs appname > app.log

3. 直接复制 PM2 日志文件

PM2 日志默认在:

~/.pm2/logs/

例如:

cp ~/.pm2/logs/appname-out.log ./app-out.log
cp ~/.pm2/logs/appname-error.log ./app-error.log

四、Docker 中运行 Node.js

1. 查看日志

docker logs 容器名

2. 导出日志

docker logs 容器名 > node.log 2>&1

五、Node.js 自身写日志文件(代码层)

如果你在代码里用了 winstonpino 等:

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

日志文件通常在项目目录或配置路径中,直接拷贝即可。


六、实用建议

  • 生产环境:用 systemd + journalctlPM2
  • 大日志:用 grep / sed / awk 过滤
journalctl -u nodeapp | grep ERROR > error.log

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

  • Node.js 怎么启动的?
  • 日志是 console 还是写文件?
  • 想导出全部还是错误日志?

我可以直接给你一条准确命令。

0