Node.js 日志在 Debian 的常见位置与定位方法
常见位置
- /var/log/ 及其子目录:许多应用会把日志写入此处,例如 /var/log/node-app.log 或自建目录 /var/log/nodejs/。若采用日志库(如 Winston、Log4js)并显式配置了文件路径,日志会出现在应用配置指定的位置。
- /var/log/syslog 或 /var/log/messages:当应用使用 console.log 输出且由 systemd 托管时,标准输出/错误常被重定向到系统日志,可在这些文件中检索。
- 应用安装目录下的 logs/ 或 log/:部分应用会把日志写到项目或安装目录(如 /opt/myapp/logs/)。
- PM2 管理的应用:默认位于用户目录 ~/.pm2/logs/,常见文件有 app-name.log、app-name-error.log。
- journald 日志:若通过 systemd 运行,可用 journalctl 按服务名查询,不一定对应具体文件。
快速定位与查看
- 列出可能的日志文件:ls /var/log | grep -i node;或全盘查找 .log 文件:sudo find / -type f -name “*.log”(按需缩小路径范围)。
- 实时查看与检索:tail -f /var/log/node-app.log;grep -i “error” /var/log/node-app.log;journalctl -u node-app.service -f(将服务名替换为你的实际服务名)。
如何确认你的应用把日志写到了哪里
- 查看应用配置或源码:检查是否使用 Winston/Log4js/Pino 等库并设置了 filename 路径;或是否通过环境变量/配置文件指定了日志文件。
- 检查进程启动方式:若是 PM2,查看 ecosystem.config.js 的 out_file/error_file;若是 systemd,查看 ExecStart/StandardOutput/StandardError 及是否由 journald 捕获。
- 检查目录权限:若日志写到 /var/log/,确保运行用户对目标文件或目录有写权限(必要时由 systemd 配置 User/Group 或调整目录权限)。
推荐做法
- 为应用创建专用目录(如 /var/log/myapp/),并在 systemd 服务或应用配置中显式设置日志路径;使用 logrotate 做按日/按大小轮转与保留。
- 统一日志格式与级别,便于 journalctl、rsyslog 或集中式日志平台(如 ELK/Graylog)采集与检索。