温馨提示×

如何导出debian nodejs日志

小樊
43
2026-09-16 09:16:56
栏目: 编程语言

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


一、Node.js 直接运行(前台 / nohup)

1. 启动时重定向日志

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

导出:

cp app.log /path/to/export/

或实时查看:

tail -f app.log

二、使用 systemd(Debian 常见方式)

1. 查看日志

journalctl -u your-node-service

2. 导出日志到文件

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

3. 导出最近 100 行

journalctl -u your-node-service -n 100 > nodejs.log

4. 按时间导出

journalctl -u your-node-service --since "2024-01-01" --until "2024-01-31"

三、使用 PM2(非常常见)

1. 查看日志路径

pm2 logs

2. 导出日志

pm2 logs --lines 1000 > pm2.log

或直接复制日志文件:

ls ~/.pm2/logs/
cp ~/.pm2/logs/*.log /path/to/export/

四、Docker 中运行 Node.js

1. 查看日志

docker logs container_name

2. 导出日志

docker logs container_name > nodejs_docker.log

3. 实时导出

docker logs -f container_name > nodejs.log

五、Node.js 内部写日志(winston / pino 等)

如果你用了日志库:

  • 找到日志配置中的 filename
  • 直接复制对应文件即可

例如:

winston.createLogger({
  transports: [
    new winston.transports.File({ filename: 'error.log' })
  ]
})
cp error.log /backup/

六、常用辅助命令

# 查找 node 相关日志
find / -name "*.log" 2>/dev/null | grep node

# 查看大日志
less app.log

如果你能告诉我:

  • Node.js 是怎么启动的(systemd / pm2 / docker / 手动)
  • 日志是控制台还是文件

我可以给你更精确的一条命令

0