在 Node.js 中,日志文件存哪里并没有“强制规定”,主要取决于你怎么写日志、用什么库以及怎么部署。下面按常见情况说明:
最常见的是放在项目根目录里的 logs/ 目录:
your-project/
├── logs/
│ ├── app.log
│ ├── error.log
│ └── 2026-01-21.log
├── src/
├── package.json
适合:
如果你用 PM2 / systemd 部署,日志一般放在:
/var/log/your-app/
例如:
/var/log/my-node-app/
├── app.log
├── error.log
需要权限:
sudo mkdir -p /var/log/my-node-app
sudo chown -R $(whoami) /var/log/my-node-app
PM2 默认把日志放在:
~/.pm2/logs/
例如:
~/.pm2/logs/app-name-out.log
~/.pm2/logs/app-name-error.log
查看路径:
pm2 logs
pm2 info app-name
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({
filename: 'logs/error.log',
level: 'error'
}),
new winston.transports.File({
filename: 'logs/app.log'
})
]
});
路径说明:
const path = require('path');
const logPath = path.join(__dirname, '../logs/app.log');
log4js.configure({
appenders: {
file: { type: 'file', filename: '/var/log/my-app/app.log' }
},
categories: {
default: { appenders: ['file'], level: 'info' }
}
});
/app/logs/app.log # 容器一重启就没了
console.log('info message');
console.error('error message');
docker run -v /var/log/my-app:/app/logs my-image
| 场景 | 建议 |
|---|---|
| 本地开发 | ./logs/ |
| 生产服务器 | /var/log/your-app/ |
| PM2 | ~/.pm2/logs/ 或自定义 |
| Docker | stdout + volume |
| 大流量 | 日志按天切割(logrotate) |
Node.js 日志文件放在哪里,取决于你如何配置。
默认没有固定位置,但生产环境通常放在/var/log/项目名/或使用 PM2 的日志目录。
如果你愿意,可以告诉我:
我可以帮你直接给出最合适的路径和配置示例。