在 Debian 上排查 Node.js 应用时,很多人第一反应是去找某个固定日志目录,但真正决定查看方式的,往往是应用的运行方式。只要先分清日志是写入文件、交给 PM2 托管,还是进入 systemd 的系统日志,再配合几条常用命令,基本就能快速定位问题来源,也能顺手判断后续该去查配置、进程管理器还是服务定义。
先判断 Node.js 应用是怎么跑起来的
在 Debian 系统里,Node.js 日志没有统一入口。你看到日志的位置,取决于应用当前采用哪种运行方式:

- 应用自己写日志到指定文件;
- 通过 PM2 这类进程管理器运行;
- 作为
systemd服务启动; - 没有单独配置日志路径,直接输出到控制台。
先确认这一点,后面的命令才不会跑偏。下面按场景分别看。
应用已写入日志文件时怎么查看
如果应用已经把日志写到了自定义路径,比如 /path/to/app.log,最直接的办法就是对这个文件做查看、跟踪和筛选。
实时跟踪最新日志
需要持续观察新输出时,用 tail -f:
tail -f /path/to/your/nodejs/app/logs/app.log
这个方式适合盯启动报错、接口异常或部署后的即时输出。
直接查看完整内容
如果只是想把当前文件完整看一遍,可以使用 cat:
cat /path/to/your/nodejs/app/logs/app.log
按关键字筛选错误信息
当日志已经比较多时,直接筛关键字更高效,例如查找 error:
grep "error" /path/to/your/nodejs/app/logs/app.log
日志路径通常定义在应用配置里,例如日志库的配置项、启动脚本,或者环境变量 LOG_PATH。如果路径不明确,优先去检查应用代码中的日志库设置,比如 winston、morgan 的配置,以及实际启动命令。
使用 PM2 管理时看哪里
生产环境里,Node.js 应用经常由 PM2 托管。PM2 会自动收集日志,默认保存在 ~/.pm2/logs 目录,因此一般不需要你再手动找输出文件。
查看所有应用的实时日志
pm2 logs
只查看指定应用
如果你只关心某一个进程,可以直接带上应用名,例如 your-app-name:
pm2 logs your-app-name
保留最近 1000 行再持续追踪
pm2 logs --lines 1000
PM2 默认会区分标准输出和标准错误,常见文件名格式如下:
:标准输出;-out.log :标准错误。-err.log
如果你已经怀疑是运行时报错,优先看 err.log,通常更快定位问题。
作为 systemd 服务运行时怎么查
如果 Node.js 应用不是手工启动,也不是 PM2 托管,而是通过 systemctl 以服务方式运行,那么日志通常进入 journald,这时应使用 journalctl 查询。

查看服务全部日志
将 your-nodejs-service 替换成实际服务名:
journalctl -u your-nodejs-service
只看最近 100 条
journalctl -u your-nodejs-service -n 100
实时跟踪服务输出
journalctl -u your-nodejs-service -f
按时间范围筛选
例如查看 2025-09-01 到 2025-09-25 之间的日志:
journalctl -u your-nodejs-service --since "2025-09-01" --until "2025-09-25"
如果你还不知道服务名,可以先执行下面这条命令确认:
systemctl list-units --type=service
没配日志文件时就看控制台输出
有些 Node.js 应用并没有单独指定日志文件,而是直接把信息输出到标准输出或标准错误。这种情况下,日志查看方式要看进程是前台还是后台运行。
前台运行时直接在终端看
如果是直接执行 node app.js,日志通常会立即显示在当前终端,适合开发和临时调试场景。
后台运行时先重定向到文件
如果通过 nohup 或 & 放到后台运行,建议把输出重定向到文件:
nohup node app.js > /path/to/app.log 2>&1 &
之后再用前面的 tail 或 cat 去查看 /path/to/app.log。
排查时还要注意这两件事
权限不足时记得提升权限
如果日志文件归属于 root 或其他高权限用户,普通账户可能无法直接读取。这时可以加上 sudo,例如:
sudo tail -f /var/log/app.log
生产环境别忽略日志轮转
日志长期不切割,很容易让单个文件变得过大,影响查看和磁盘占用。生产环境通常建议使用 logrotate 自动轮转,相关配置一般位于 /etc/logrotate.d/ 目录。
快速判断路径的思路
如果你只是想尽快找到 Debian 上 Node.js 应用的日志,可以按这个顺序判断:
- 先看应用是否自己配置了日志文件路径;
- 如果用了 PM2,就直接查
~/.pm2/logs或执行pm2 logs; - 如果是 systemd 服务,就用
journalctl -u your-nodejs-service; - 如果都没有,回到控制台输出或后台重定向文件去找。
把运行方式和日志去向对应起来,通常比盲目翻目录更快。







