Spring的Event事件驱动 实现 日志系统相关记录

前言

  • 系统一大,就会拆分成多个独立的进程,比如使用微服务架构,也就成了分布式系统。
  • 传统的日志系统比如log4j已经无法满足,我们需要将这些日志合并展示到一个统一的地方。
  • 如此一来,分布式日志收集系统就登场了。
  • 现在用的较多的技术组合为 ElasticSearch+ logstash(基于java)+kibana(基于JRuby, logstash已自带),也就是大家常说的ELK
  • 但是此系统较为重量级并不是很适合轻量级微服务架构,SpringBlade封装了一个相对好拓展的日志系统,下面我们来具体看一下把!~

实现思路

全局统一异常

  • 使用@RestControllerAdvice,捕获异常后统一返回封装好的格式。
  • 异常分成两种:已知异常与未知异常,未知异常是着重需要关注的,所以会将未知异常入库,方便排查
  • 以下为全局异常核心代码
@Slf4j
@Configuration
@ConditionalOnClass({Servlet.class, DispatcherServlet.class})
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@RestControllerAdvice
public class BladeRestExceptionTranslator {

   @ExceptionHandler(MissingServletRequestParameterException.class)
   @ResponseStatus(HttpStatus.BAD_REQUEST)
   public R handleError(MissingServletRequestParameterException e) {
     

你可能感兴趣的:(#,后端相关)