Skip to content
On this page

日志系统

基本介绍

  • 提供采集、存储日志。分为三种类型,分别为接口日志、错误日志、通用日志。
  • 实现方式通过 springBoot 中事件发布与订阅的方式进行监听,并异步发送时间等信息,减少日志操作的性能损耗。

接口日志

  • 接口上使用@ApiLog 即可
  • 信息后会保存到接口日志 cbb_sys_log_api
java
/**
  * 删除用户
  * @param ids id列表
  * @return {@link R<Boolean>}
  */
@ApiLog(value = "删除用户")
@PostMapping("/delete")
@ApiOperation(value = "删除用户", notes = "传入id数组")
public R<Boolean> delete(@RequestBody List<Integer> ids) {
  return R.status(userService.removeUserByIds(ids));
}

错误日志

  • 接入日志系统,就会自动收集系统抛出的错误。
  • 通过继承 DefaultErrorAttributes 类,重写 getErrorAttributes 方式实现。
  • 收集错误信息后会保存到错误日志 cbb_sys_log_error

通用日志

  • 通过代码的方式实现记录日志
  • 信息后会保存到接口日志 cbb_sys_log_usual
java
@RequestMapping("/index/test")
@ApiLog()
public R<Object> indexLogin() {
  // 发布一个事件测试
  cbbLogger.error(String.format("业务id: %s", DateUtil.current()) , "测试发布事件");
  cbbLogger.warn(String.format("业务id: %s", DateUtil.current()), "测试发布事件");
  cbbLogger.debug(String.format("业务id: %s", DateUtil.current()), "测试发布事件");
  cbbLogger.info(String.format("业务id: %s", DateUtil.current()), "测试发布事件");
  int i = 0 / 0;
  return R.data(JSONUtil.createObj().set("正常响应", "正常响应"));
}
java
package com.kyny.cbb.core.log.logger;

import com.kyny.cbb.core.log.publisher.UsualLogPublisher;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;

/**
 * 日志工具类
 *
 */
@Slf4j
public class CbbLogger implements InitializingBean {

	@Value("${spring.application.name}")
	private String serviceId;

	public void info(String id, String data) {
		UsualLogPublisher.publishEvent("info", id, data);
	}

	public void debug(String id, String data) {
		UsualLogPublisher.publishEvent("debug", id, data);
	}

	public void warn(String id, String data) {
		UsualLogPublisher.publishEvent("warn", id, data);
	}

	public void error(String id, String data) {
		UsualLogPublisher.publishEvent("error", id, data);
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		log.info(serviceId + ": CbbLogger init success!");
	}

}