微服务日志之Spring Boot Kafka实现日志收集

前言

承接上文( 微服务日志之.NET Core使用NLog通过Kafka实现日志收集 https://www.cnblogs.com/maxzhang1985/p/9522017.html ).NET/Core的实现,我们的目地是为了让微服务环境中dotnet和java的服务都统一的进行日志收集。
Java体系下Spring Boot + Logback很容易就接入了Kafka实现了日志收集。

Spring Boot集成

Maven 包管理


  
     
    ch.qos.logback
    logback-core
    1.2.3
    
  

包依赖引用:


    com.github.danielwegener
    logback-kafka-appender
    0.2.0-RC1


    ch.qos.logback
    logback-classic
    1.2.3
    runtime


    net.logstash.logback
    logstash-logback-encoder
    5.0

logback-spring.xml

在Spring Boot项目resources目录下添加logback-spring.xml配置文件,注意:一定要修改 {"appname":"webdemo"},这个值也可以在配置中设置为变量。添加如下配置,STDOUT是在连接失败时,使用的日志输出配置。所以这每个项目要根据自己的情况添加配置。在普通日志输出中使用异步策略提高性能,内容如下:

 
        
            {"appname":"webdemo"}
            true
            true
            
                30
                true
            
        
        loges
        
        
        bootstrap.servers=127.0.0.1:9092
        
        acks=0
        
        linger.ms=1000
        
        
        block.on.buffer.full=false
        
        
    

注意:一定要修改 {"appname":"webdemo"} , 这个值也可以在配置中设置为变量 。对于第三方框架或库的错误和异常信息如需要写入日志,错误配置如下:


        
            {"appname":"webdemo"}
            true
            true
            
                30
                true
            
        
        ep_component_log
        
        
        
            
            0
        
        bootstrap.servers=127.0.0.1:9020
        
        acks=0
        
        linger.ms=1000
        
        max.block.ms=0
        
        
            ERROR
            ACCEPT
            DENY
        
    

在异常日志用使用了同步策略保证,错误日志的有效收集,当然可以根据实际项目情况进行配置。

LOG配置建议:

日志root指定错误即可输出第三方框架异常日志:

 
        
 

建议只输出自己程序里的级别日志配置如下(只供参考):


    
    

最后

GitHub:https://github.com/maxzhang1985/YOYOFx 如果觉还可以请Star下, 欢迎一起交流。

.NET Core 开源学习群:214741894

你可能感兴趣的:(微服务日志之Spring Boot Kafka实现日志收集)