在 Debian 上,“JS 日志路径”通常取决于你用的是 哪种 JS 运行环境 / 框架:
下面按最常见场景说明。
const fs = require('fs');
const path = require('path');
const logDir = '/var/log/myapp';
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const logStream = fs.createWriteStream(
path.join(logDir, 'app.log'),
{ flags: 'a' }
);
console.log = (msg) => {
logStream.write(`[${new Date().toISOString()}] ${msg}\n`);
};
✅ 日志路径:/var/log/myapp/app.log
npm install winston
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({
filename: '/var/log/myapp/app.log'
})
]
});
logger.info('server started');
PM2 默认日志在:
~/.pm2/logs/
pm2 start app.js \
--name myapp \
--log /var/log/myapp/pm2.log \
--output /var/log/myapp/out.log \
--error /var/log/myapp/err.log
或 ecosystem.config.js:
module.exports = {
apps: [{
name: 'myapp',
script: 'app.js',
out_file: '/var/log/myapp/out.log',
error_file: '/var/log/myapp/err.log',
log_file: '/var/log/myapp/pm2.log'
}]
};
[Unit]
Description=Node App
[Service]
ExecStart=/usr/bin/node /opt/myapp/app.js
WorkingDirectory=/opt/myapp
StandardOutput=append:/var/log/myapp/stdout.log
StandardError=append:/var/log/myapp/stderr.log
User=www-data
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reexec
sudo systemctl enable myapp
sudo systemctl start myapp
✅ 日志路径:
/var/log/myapp/stdout.log/var/log/myapp/stderr.logserver {
access_log /var/log/nginx/myapp-access.log;
error_log /var/log/nginx/myapp-error.log;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
sudo mkdir -p /var/log/myapp
sudo chown -R www-data:www-data /var/log/myapp
| 场景 | 推荐方式 |
|---|---|
| 小项目 | 代码写文件 |
| 生产 Node | Winston + systemd |
| 多进程 | PM2 |
| Web 请求 | Nginx 日志 |
如果你能告诉我:
我可以给你直接可用的配置示例。