Spring Boot 多线程开发之异步日志

阿里云优惠神卷、最高优惠25%,值得拥有:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ryr8l9eb&utm_source=ryr8l9eb

背景

最近在进行大量数据的清洗和转换工作,因为涉及的数据量和表的个数较多,采用线程池的方式来进行多线程跑批处理。每个表和每个数据的清洗是不同的线程,一旦发生异常,需要快速排查某个现场的执行异常,采用传统的文本来进行排查或者通过日志解析后来排查,排查效率是非常低下的。如果可以通过数据的日志来排查呢?是否更加简单快捷?

Spring Boot 多线程开发之异步日志_第1张图片
无法轻易追溯的文本日志

工具选型

通过考虑,log4j2和logback都能够支持异步输出到DB的。笔者选用的是logback,主要是因为spring boot admin支持对logback进行日志级别的动态控制。

Spring Boot 多线程开发之异步日志_第2张图片
spring boot admin动态日志级别控制
Spring Boot 多线程开发之异步日志_第3张图片
数据库日志

配置步骤

Mave依赖

1、spring boot
1、spring boot admin 依赖

    
        org.springframework.boot
        spring-boot-starter-parent
        1.4.2.RELEASE
    

    
        1.7
        1.4.2
    

     
            org.springframework.boot
            spring-boot-starter-actuator
        
            de.codecentric
            spring-boot-admin-server
            ${boot.admin.version}
        
        
            de.codecentric
            spring-boot-admin-server-ui
            ${boot.admin.version}
        
        
            de.codecentric
            spring-boot-admin-starter-client
            ${boot.admin.version}
        

2、logback数据库操作依赖

        
            com.mchange
            c3p0
            0.9.5
        
        
            com.oracle
            ojdbc6
            11.2.0
        

配置

1、application.yml

logging:
    level:
        tk.mybatis: DEBUG
    path: /log
server:
    port: 8080
spring:
    application:
        name: ace-admin
    boot:
        admin:
             url: http://localhost:${server.port}

2、logback.xml



    
        
            
                oracle.jdbc.driver.OracleDriver
                jdbc:oracle:thin:@//localhost:1521/xxx
                xxxx
                xxxx
            
        
    
    
    
        
    
    
    

数据库准备

logback数据库脚本下载

验证

spring boot admin验证

访问地址:http://localhost:8080/

Spring Boot 多线程开发之异步日志_第4张图片
效果如图

logback db输出日志验证

根据日志输出的需要,配置(logback.xml)需要往数据库输出的日志的包路径和级别。

    
        
    

你可能感兴趣的:(Spring Boot 多线程开发之异步日志)