在 Linux 下查找 Node.js 的日志,通常取决于你的 Node.js 程序是如何运行的、日志是写到哪里去的。下面按常见情况说明:
很多 Node 项目会自己写日志,比如:
fs.writeFileSync('/var/log/myapp.log', log)
或用了 winston、pino、log4js 等:
常见位置:
/var/log/
/var/log/<项目名>/
./logs/
~/logs/
搜索日志文件:
find / -name "*.log" 2>/dev/null | grep node
如果你是直接在终端跑:
node app.js
那日志就在当前终端输出(stdout / stderr)。
如果终端关了,一般就没有保存。
常见方式:
nohup node app.js &
日志默认在:
nohup.out
当前目录下:
ls -l nohup.out
cat nohup.out
或你指定过:
node app.js > app.log 2>&1 &
那就在 app.log
systemctl list-units --type=service | grep node
journalctl -u <服务名>
实时查看:
journalctl -u <服务名> -f
只看最近 100 行:
journalctl -u <服务名> -n 100
systemctl status <服务名>
通常会显示:
Loaded: loaded (/etc/systemd/system/myapp.service)
查看是否指定了日志文件:
cat /etc/systemd/system/myapp.service
pm2 logs
只看某个应用:
pm2 logs <app_name>
日志文件位置:
~/.pm2/logs/
docker ps
docker logs <容器名或ID>
实时日志:
docker logs -f <容器名或ID>
dmesg | tail
或
/var/log/syslog
/var/log/messages
*.log 文件journalctl 或 pm2 logs如果你愿意,可以把启动方式或报错信息发出来,我可以直接告诉你日志在哪、怎么看。