温馨提示×

nodejs日志ubuntu存哪

小樊
43
2026-09-12 10:25:32
栏目: 编程语言

在 Ubuntu 上,Node.js 本身不会自动把日志存到某个固定目录,日志存在哪里,完全取决于你的代码怎么写用什么方式启动。下面按常见情况说明:


一、代码里自己写日志文件

如果你在代码里这样写:

const fs = require('fs');
fs.appendFileSync('/var/log/myapp.log', 'hello\n');

那日志就在你指定的路径,例如:

/var/log/myapp.log

二、用日志库(常见)

1. winston

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

位置由你配置决定。

2. pino / morgan / log4js

同样是配置文件里的路径


三、用 PM2 启动(非常常见)

如果你用:

pm2 start app.js

PM2 默认日志在:

~/.pm2/logs/

例如:

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

查看:

pm2 logs

四、用 systemd 启动(生产推荐)

如果你用 .service 文件启动 Node.js:

日志在:

/var/log/syslog

或:

journalctl -u your-service.service

五、直接命令行运行

node app.js > log.txt

日志就在当前目录的 log.txt


六、Nginx 反代 Node(常见误解)

Node 日志 不在

/var/log/nginx/access.log

那是 HTTP 访问日志,不是 Node 业务日志。


快速排查命令

# 找 Node 日志文件
sudo find / -name "*.log" 2>/dev/null | grep -i node

# 看正在运行的 Node 进程
ps aux | grep node

# 看 PM2
pm2 list
pm2 logs

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

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

我可以帮你精确定位日志在哪

0