在 Ubuntu 上,Node.js 本身不会自动把日志存到某个固定目录,日志存在哪里,完全取决于你的代码怎么写或用什么方式启动。下面按常见情况说明:
如果你在代码里这样写:
const fs = require('fs');
fs.appendFileSync('/var/log/myapp.log', 'hello\n');
那日志就在你指定的路径,例如:
/var/log/myapp.log
new winston.transports.File({ filename: '/var/log/app/error.log' })
位置由你配置决定。
同样是配置文件里的路径。
如果你用:
pm2 start app.js
PM2 默认日志在:
~/.pm2/logs/
例如:
~/.pm2/logs/app-out.log # 标准输出
~/.pm2/logs/app-error.log # 错误
查看:
pm2 logs
如果你用 .service 文件启动 Node.js:
日志在:
/var/log/syslog
或:
journalctl -u your-service.service
node app.js > log.txt
日志就在当前目录的 log.txt
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
如果你愿意,可以告诉我:
我可以帮你精确定位日志在哪。