温馨提示×

nodejs日志在linux存何处

小樊
46
2026-09-17 18:02:59
栏目: 编程语言

在 Linux 上,Node.js 本身不会自动把日志写到某个固定位置,日志存哪里,取决于你(或你用的框架 / 进程管理工具)怎么配置。下面按常见情况说明:


一、没有额外配置时(最常见)

如果你只是这样运行:

node app.js
  • 日志默认输出到终端(stdout / stderr)
  • 不会自动写文件
  • 关闭终端,日志就没了

二、手动重定向(常见做法)

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

日志位置:

  • app.log(当前目录,或你指定的路径)

三、使用 PM2(非常常见)

如果你用 PM2 启动:

pm2 start app.js

日志默认在:

~/.pm2/logs/

例如:

  • ~/.pm2/logs/app-out.log(标准输出)
  • ~/.pm2/logs/app-error.log(错误日志)

查看日志:

pm2 logs

四、使用 systemd(生产服务器常见)

如果是 systemd 服务:

journalctl -u your-node-service

Node 输出会被 systemd 接管,不写文件,而在 journal 里


五、代码里写文件(框架/业务日志)

比如用:

  • winston
  • pino
  • log4js

位置完全由配置决定,例如:

winston.add(new winston.transports.File({ filename: '/var/log/node/app.log' }));

常见目录:

  • /var/log/node/
  • /srv/app/logs/
  • 项目目录下的 logs/

六、快速排查你现在的日志在哪

# 看进程
ps aux | grep node

# 看是否重定向
ls -l /proc/<pid>/fd

# PM2
pm2 logs

# systemd
journalctl -u <服务名>

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

  • 你怎么启动 Node(命令 / PM2 / Docker / systemd)
  • 用的是 Express / Nest / 原生?

我可以直接帮你定位日志文件。

0