温馨提示×

ubuntu下nodejs日志在哪存

小樊
40
2026-10-03 13:36:45
栏目: 编程语言

在 Ubuntu 下,Node.js 本身的日志位置并不固定,主要取决于你如何运行 Node.js 程序以及代码里怎么写日志。下面按常见情况说明:


一、Node.js 程序自己写日志(最常见)

Node.js 不会自动生成日志文件,日志通常由代码控制:

  • console.log() → 输出到标准输出(stdout)
  • console.error() → 输出到标准错误(stderr)

1. 前台运行

node app.js

日志直接打印在终端


2. 后台运行(nohup / &)

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

日志在:

当前目录/app.log

3. 使用 PM2(非常常见)

pm2 start app.js

PM2 日志默认在:

~/.pm2/logs/

例如:

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

查看日志:

pm2 logs

4. 使用 systemd(生产环境常见)

如果你用 systemd 管理 Node 服务:

journalctl -u your-node-service.service

日志由 systemd 管理,不在文件里,而是存在:

/var/log/journal/

二、代码中显式写文件

很多项目会用日志库:

  • winston
  • pino
  • morgan(HTTP 日志)

例如:

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

那日志就在你代码指定的路径,常见位置:

/var/log/node/
/var/log/<项目名>/
./logs/

三、Nginx / 反向代理日志(如果有)

Node 前面通常是 Nginx:

/var/log/nginx/access.log
/var/log/nginx/error.log

四、快速排查方法

看进程

ps aux | grep node

看文件描述符(日志文件)

ls -l /proc/<pid>/fd

总结一句话

Node.js 没有统一日志位置,日志在哪,取决于你怎么运行它、用什么工具、代码怎么写。

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

  • 你是怎么启动 Node 的(pm2 / systemd / 直接 node)
  • 用的什么框架(Express / Nest / 原生)

我可以帮你精准定位日志文件。

0 踩