温馨提示×

如何过滤debian js日志信息

小樊
45
2026-09-10 04:15:08
栏目: 编程语言

在 Debian 系统上“过滤 JS 日志信息”通常有两种常见理解:

  1. 过滤运行在 Debian 上的 JS 应用(Node.js / 浏览器前端)产生的日志
  2. 在 Debian 系统中从日志文件里筛选 JavaScript 相关日志

下面按常见场景给你几种实用做法。


一、Node.js 应用日志过滤

1. 使用命令行过滤(最常用)

如果日志输出到 stdout / 文件:

node app.js 2>&1 | grep "ERROR"

从日志文件过滤:

grep "TypeError" /var/log/node/app.log

只看某个模块的日志:

grep "userService" app.log

2. 使用 journalctl(systemd 服务)

如果 Node.js 是 systemd 服务:

journalctl -u node-app.service -f
journalctl -u node-app.service | grep "ERROR"

按时间过滤:

journalctl -u node-app.service --since "2026-01-20 10:00"

二、使用日志库自带过滤(推荐)

1. Winston(Node.js)

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

只记录 error:

logger.error('JS error occurred');

2. Pino(高性能)

const pino = require('pino');
const logger = pino({ level: 'warn' });

三、前端 JS 日志(Nginx / Apache 场景)

如果是浏览器 JS 报错,通常:

  • 前端日志在浏览器控制台
  • 后端只看到 API 请求日志

可过滤 API 日志:

grep "POST /api" /var/log/nginx/access.log

四、使用 logrotate + grep 长期过滤

zgrep "ReferenceError" /var/log/node/*.gz

五、进阶:结构化日志(JSON)过滤

如果日志是 JSON:

jq 'select(.level=="error")' app.log

总结建议

  • 开发调试grep + journalctl
  • 生产环境:Winston / Pino + 日志级别
  • 长期分析:JSON 日志 + jq

如果你能补充:

  • JS 是 Node.js 还是前端?
  • 日志写在哪里(文件 / systemd / Docker)?

我可以给你更精确的方案。

0