在Linux系统中,Node.js的日志存储位置取决于你的应用配置和日志记录方式。以下是常见的几种情况:
node app.js
),日志会输出到终端(stdout/stderr),不会自动保存到文件。bash
node app.js > app.log 2>&1 # 合并stdout和stderr到app.log
app.log
(或自定义路径)。通过第三方库(如winston
、morgan
、bunyan
等)配置日志路径:
javascript
const winston = require('winston');
winston.add(new winston.transports.File({ filename: '/var/log/myapp.log' }));
filename
参数指定(如/var/log/myapp.log
)。常见模块的默认路径:
morgan
(HTTP请求日志):需显式配置输出流到文件。pino
:默认输出到stdout,需通过参数指定文件。systemd
),日志由journald
管理:
bash
journalctl -u your-service-name.service # 查看服务日志
StandardOutput
和StandardError
:
ini
[Service]
ExecStart=/usr/bin/node /path/to/app.js
StandardOutput=file:/var/log/node-app.log
StandardError=file:/var/log/node-app-error.log
bash
~/.pm2/logs/ # 用户目录下的.pm2/logs/
app-name-out.log
(标准输出)和app-name-err.log
(错误日志)。bash
pm2 start app.js --log /var/log/myapp.log
docker logs
查看:
bash
docker logs <container-id>
bash
sudo find / -name "*.log" | grep -i node
ps aux | grep node
找到应用路径,推测日志位置。winston
)并明确指定路径(如/var/log/
)。logrotate
)以避免磁盘爆满。如果有具体场景或工具链,可以提供更多细节以便进一步定位!