Springboot 使用logback直接将日志写入Elasticsearch
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
作者 | inkanyway
来源 | urlify.cn/BbEzay
正常情况下,一般组合为elk 即日志会通过logstash写入es,但本文主要为轻量级项目直接利用appender写入es
首先需要引入包
    
            com.internetitem 
            logback-elasticsearch-appender 
            1.6 
        
添加logback-spring.xml到resource目录的根目录下
"1.0" encoding="UTF-8"?>
    "LOGS" value="./logs"/>
    "Console"
              class="ch.qos.logback.core.ConsoleAppender">
        "ch.qos.logback.classic.PatternLayout">
            
                %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
            
         
     
    "RollingFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        ${LOGS}/spring-boot-logger.log 
                        class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            %d %p %C{1.} [%t] %m%n 
         
                        class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            ${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
             
                                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                10MB 
             
         
     
    "ELASTIC" class="com.internetitem.logback.elasticsearch.ElasticsearchAppender">
        ES连接字符串 
        linkanyway-logs-%date{yyyy-MM-dd} 
        <type>testertype>
        linkanyway-logger  
        linkanyway-error-logger  
        30000  
        false  
        false  
        false  
        104857600  
        3  
        30000  
        250  
        false  
        false  
        100  
        "com.internetitem.logback.elasticsearch.config.BasicAuthentication"/> 
        
            
                host 
                ${HOSTNAME} 
                false 
            
            
                severity 
                %level 
            
            
                thread 
                %thread 
            
            
                stacktrace 
                %ex 
            
            
                logger 
                %logger 
            
        
        
            
                Content-Type 
                application/json 
            
        
      
    
    "info">
        "RollingFile"/>
        "Console"/>
      
        "ELASTIC"/>
        
    
    "com.baeldung" level="trace" additivity="false">
        "RollingFile"/>
        "ELASTIC"/>
       
   
    "es-logger" level="INFO" additivity="false">
        "ELASTIC"/>
      
 
在application.yml中设定日志level
logging:
  level:
    root: info
另外我们也可以在root部分不适用es记录日志而在需要的代码中用如下方式记录日志
package com.linkanyway.portal.controllers;
import com.linkanyway.sdk.exception.ApiResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author linkanyway
 * @version 1.0
 * @name EsLoggerController
 * @description TODO
 * @date 2020/12/13 13:14
 */
@RestController
@RequestMapping("log")
public class EsLoggerController {
    private Logger logger = LoggerFactory.getLogger("es-logger");
    @GetMapping("log")
    public ApiResult log()
    {
        logger.warn ("eslogger");
        return ApiResult.success ("done!");
    }
}
 粉丝福利:Java从入门到入土学习路线图
???

?长按上方微信二维码 2 秒 
感谢点赞支持下哈 
评论
