在 Debian 系统里,“JS 日志”通常指 JavaScript 运行环境(Node.js) 或 前端 JS 在浏览器/Nginx 里产生的日志。下面按常见场景给你一个完整配置指南。
console(简单但不推荐生产)console.log('info');
console.error('error');
日志会输出到:
winston(最常用)pino(高性能)bunyannpm install winston
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('服务启动');
logger.error('出错了');
日志路径建议:
/var/log/myapp/
sudo mkdir -p /var/log/myapp
sudo chown -R node:node /var/log/myapp
sudo nano /etc/systemd/system/myapp.service
[Unit]
Description=Node.js App
After=network.target
[Service]
Type=simple
User=node
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/node index.js
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
journalctl -u myapp -f
npm install -g pm2
pm2 start index.js --name myapp
pm2 logs myapp
日志默认位置:
~/.pm2/logs/
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
前端 JS 不能直接写服务器日志,但可以:
window.onerror = function (msg, url, line) {
fetch('/log', {
method: 'POST',
body: JSON.stringify({ msg, url, line })
});
};
后端接收并写日志。
sudo nano /etc/logrotate.d/myapp
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 node node
}
| 场景 | 推荐 |
|---|---|
| Node.js 服务 | Winston + systemd |
| 快速部署 | PM2 |
| 前端 JS | 接口上报 |
| 日志管理 | logrotate |
如果你能具体说一下:
我可以直接给你一份 可复制的配置文件。