温馨提示×

linux nodejs日志路径在哪

小樊
42
2026-09-20 20:41:25
栏目: 编程语言

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


1. 自己用 console.log / console.error

默认是输出到:

  • 标准输出(stdout)
  • 标准错误(stderr)

如果直接在终端运行:

node app.js

日志就在当前终端

如果重定向了:

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

日志就在:

./app.log

2. 使用 PM2(最常见)

默认日志路径

~/.pm2/logs/

示例:

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

查看日志

pm2 logs
pm2 logs app

自定义日志路径

pm2 start app.js --output /var/log/node/app-out.log --error /var/log/node/app-error.log

3. 使用 systemd(服务方式)

如果 Node.js 是通过 systemd 启动的:

查看日志

journalctl -u your-service-name
journalctl -u your-service-name -f

日志路径(二进制,不直接看文件)

/var/log/journal/

4. 框架自带日志

Express + Morgan

通常在代码里指定:

morgan('combined', { stream: fs.createWriteStream('/var/log/node/access.log') })

Winston / Pino

路径由配置决定,例如:

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

5. 常见默认目录(如果手动配置过)

  • /var/log/node/
  • /var/log/app/
  • 项目目录/logs/
  • 项目目录/log/

6. 快速查找 Node 日志文件

sudo find / -name "*.log" 2>/dev/null | grep -i node

或看进程打开的文件:

ls -l /proc/$(pgrep node)/fd

如果你能告诉我:

  • 用的是什么启动方式(PM2 / systemd / 直接 node)
  • 用的什么框架(Express / Nest / 原生)

我可以帮你精确定位日志路径

0