在 Debian 系统上“过滤 JS 日志信息”通常有两种常见理解:
下面按常见场景给你几种实用做法。
如果日志输出到 stdout / 文件:
node app.js 2>&1 | grep "ERROR"
从日志文件过滤:
grep "TypeError" /var/log/node/app.log
只看某个模块的日志:
grep "userService" app.log
如果 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"
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');
const pino = require('pino');
const logger = pino({ level: 'warn' });
如果是浏览器 JS 报错,通常:
可过滤 API 日志:
grep "POST /api" /var/log/nginx/access.log
zgrep "ReferenceError" /var/log/node/*.gz
如果日志是 JSON:
jq 'select(.level=="error")' app.log
grep + journalctljq如果你能补充:
我可以给你更精确的方案。