在 Linux 上,Node.js 本身不会自动把日志存到某个固定目录,日志位置取决于你(或你用的框架/进程管理器)是怎么启动和配置的。下面按常见情况说明:
node 启动(最常见)node app.js
node app.js > app.log 2>&1
日志就在你指定的 app.log 里(通常在当前目录)
console.log / console.errorconsole.log('hello')
pm2 start app.js
PM2 会自动存日志,位置一般是:
~/.pm2/logs/
例如:
~/.pm2/logs/app-out.log # 标准输出
~/.pm2/logs/app-error.log # 错误日志
查看日志:
pm2 logs
如果你用 systemd 管理 Node 服务:
journalctl -u your-node-service
日志由 systemd 管理,通常在:
/var/log/journal/
(二进制格式,不直接看文件)
如果你在代码里配置了日志文件:
winston.add(new winston.transports.File({ filename: '/var/log/app.log' }))
那日志就在你代码里指定的路径,最常见是:
/var/log/
或项目目录下的 logs/
docker logs 容器名
/var/lib/docker/containers/
如果你不知道日志在哪,可以:
ps aux | grep node
看启动命令有没有重定向或配置文件路径。
如果你能告诉我:
node / pm2 / docker / systemd?我可以直接帮你定位到具体文件路径。