温馨提示×

debian怎样采集js日志

小樊
45
2026-10-07 03:01:55
栏目: 编程语言

在 Debian 上“采集 JS 日志”通常分两种场景:前端 JS(浏览器)日志 和 Node.js(服务端 JS)日志。下面分别说明常见做法。


一、前端 JS 日志采集(浏览器端)

前端 JS 运行在用户浏览器里, Debian 本身不能直接“抓”浏览器日志,需要:

1. 前端主动上报日志

在前端代码里收集 console、错误信息并发送到服务器:

window.onerror = function (msg, url, line, col, error) {
  navigator.sendBeacon('/log', JSON.stringify({
    msg, url, line, col, stack: error && error.stack
  }));
};

或用 fetch / axios 上报。

2. Debian 端接收日志

常见方式:

✅ Nginx 接收并写日志

location /log {
    access_log /var/log/js/access.log json;
    return 200;
}

✅ Node.js 服务接收

app.post('/log', (req, res) => {
  fs.appendFileSync('/var/log/js.log', JSON.stringify(req.body) + '\n');
  res.send('ok');
});

3. 使用现成方案(推荐)

  • Sentry(错误监控)
  • ELK + Filebeat
  • Grafana Loki + Promtail

二、Node.js 日志采集(服务端 JS)

如果你在 Debian 上运行 Node.js:

1. 使用日志库

const winston = require('winston');
winston.add(new winston.transports.File({ filename: '/var/log/node/app.log' }));

2. 用 systemd 采集

systemctl edit yourapp.service
[Service]
StandardOutput=append:/var/log/node/app.out.log
StandardError=append:/var/log/node/app.err.log

3. 用 journald

journalctl -u yourapp.service -f

三、集中采集(生产推荐)

架构示例

JS → Nginx/Node → 日志文件 → Filebeat → Elasticsearch / Loki

Debian 常用组件:

  • rsyslog
  • filebeat
  • promtail
  • fluentd

四、简单快速示例(Debian)

前端 JS

console.log('test');
fetch('/log', { method:'POST', body: 'hello' });

Debian 接收

mkdir -p /var/log/js
nc -l -p 8080 >> /var/log/js/log.txt

如果你能说明:

  • 是 浏览器 JS 还是 Node.js
  • 是否要 实时 / 集中 / 长期存储

我可以给你更具体的方案。

0 踩