在 Linux 下过滤 Node.js 日志中的“错误(error)”,常见做法有下面几种,按从简单到专业给你整理:
cat app.log | grep -i error
或实时查看:
tail -f app.log | grep -i error
常见关键词:
grep -iE "error|exception|stack|failed" app.log
grep -i "error" app.log
如果是 JSON 日志:
grep '"level":"error"' app.log
console.error('something wrong');
过滤:
grep -i "error" app.log
process.on('uncaughtException', err => {
console.error('uncaughtException:', err);
});
process.on('unhandledRejection', err => {
console.error('unhandledRejection:', err);
});
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' })
]
});
只看错误:
tail -f error.log
pm2 logs --err
只看错误日志,非常方便。
最近 100 行里的错误:
tail -n 100 app.log | grep error
指定时间段:
sed -n '/2026-01-21 10:00/,/2026-01-21 11:00/p' app.log | grep error
cat app.log | jq 'select(.level=="error")'
如果你愿意,可以:
我可以直接帮你写最合适的过滤命令。