Skip to content

日志组件使用

简介

本文档介绍后端工程引入数字底座日志组件 SDK,进行应用的开发。

数字底座的操作日志利用 AOP 的方式实现,对这些注解 @RiseLog@Path@RequestMapping 进行拦截,执行日志记录的行为,将日志信息上报日志平台,然后日志管理平台监听日志信息,接收到日志数据并保存这些数据

具体的实现逻辑可查看 y9-digitalbase-starter/risenet-y9boot-starter-log/src/main/java/net/risesoft/log/aop/RiseLogAdvice.java

目前有两种上报日志信息的方式,选择其中一种方式即可:

  • kafka,利用消息中间件 Kafka 上报日志信息,日志服务器再去消费日志数据存储。
  • api,调用日志平台提供的 HTTP API 存储。

功能引用

添加依赖

添加日志组件依赖包

xml
    <dependency>
        <groupId>net.risesoft</groupId>
        <artifactId>risenet-y9boot-starter-log</artifactId>
        <version>[最新正式版本]</version>
    </dependency>

如需使用 SNAPSHOT 版本,且 maven 没有 POM 继承链至数字底座的 y9-digitalbase-parent 则还需将有生的私服仓库地址添加到 pom.xml 文件中。

xml
<repositories>
    <repository>
        <id>y9-internet-repo</id>
        <url>https://svn.youshengyun.com:9900/nexus/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <!-- <updatePolicy>always</updatePolicy> -->
            <!-- always,daily(default),interval:XXX,never -->
        </snapshots>
    </repository>
</repositories>

修改配置文件

根据选择的上报方式修改配置文件:

  • kafka

使用 kafka 时,还需添加 kafka 相关配置

yaml
spring:
    kafka:
        bootstrap-servers: localhost:9092
        consumer:
            group-id: y9demo-kernel-api-server
y9:
    feature:
        log:
            enabled: true
            logSaveTarget: kafka
properties
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=y9demo-kernel-api-server
y9.feature.log.enabled=true
y9.feature.log.logSaveTarget=kafka
  • api
yaml
y9:
    common:
        logBaseUrl: http://localhost:7055/log
    feature:
        log:
            enabled: true
            logSaveTarget: api
properties
y9.common.logBaseUrl=http://localhost:7055/log
y9.feature.log.enabled=true
y9.feature.log.logSaveTarget=api

示例代码

@RiseLog 注解:

  • operationName 方法名称
  • logLevel 日志级别
  • moduleName 业务系统名称
java
package net.risesoft.log;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import net.risesoft.log.annotation.RiseLog;

@RestController
public class LogDemoController {

    @GetMapping
    @RiseLog(operationName = "测试记录日志", moduleName = "日志记录演示系统")
    public String log() {
        return "log success";
    }
}

示例项目

示例项目地址:https://gitee.com/risesoft-y9/y9-core/y9-digitalbase-example/risenet-y9demo-log

Released under the GPL-3.0 License.