淘东电商项目(51) -全局异常日志采集(ELK+Kafka)

引言

本文代码已提交至Github(版本号:15880edfd7251ec4fc7950ff346056efe46f4272),有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop

前面的博客把ELK+Kafka的原理以及功能都实现了,有兴趣的同学可以参阅下:

本文在前面的基础上讲解全局异常捕获,并通过Kafka发送到ELK。

本文目录结构:
l____引言
l____ 1. 代码
l____ 2. 测试

1.代码

实现很简单,直接定义一个全局异常捕获类,直接在捕获方法里面发送错误日志到Kafka即可,代码如下:

/**
 * description: 全局捕获异常
 * create by: YangLinWei
 * create time: 2020/4/29 5:20 下午
 */
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
	@Autowired
	private KafkaSender<JSONObject> kafkaSender;

	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public JSONObject exceptionHandler(Exception e) {

		// 1.封装异常日志信息
		JSONObject errorJson = new JSONObject();
		JSONObject logJson = new JSONObject();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
		logJson.put("request_time", df.format(new Date()));
		logJson.put("error_info", e);
		errorJson.put("request_error", logJson);
		kafkaSender.send(errorJson);
		// 2. 返回错误信息
		JSONObject result = new JSONObject();
		result.put("code", 500);
		result.put("msg", "系统错误");

		return result;
	}
}

在商品搜索服务模拟一个异常:
在这里插入图片描述

2.测试

启动ELK+Kafa环境,然后在浏览器请求http://localhost:8500/search?name=pg模拟抛出异常:
在这里插入图片描述

可以看到logstash控制台收集到错误日志:
在这里插入图片描述
在kibana也能查看到采集的错误日志:
在这里插入图片描述

本文完!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值