028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

日志分析实践与应用

日志分析实践与应用

      这个场景是,日志系统平时为了系统处理能力,我们使用INFO级别或ERROR级别,当发现问题时,我们需要不停服务的动态的将日志级别变更为DEBUG以便在执行细节发现问题,下面列举了动态变更的操作,需要借助代码、定时和配置中心服务。

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了红岗免费建站欢迎大家使用!

      在微服务的场景,日志是散落在各个服务集群节点中,不方便查看,所以我们需要通过集中收集到一处保存、查看和分析。

应用程序中日志的配置

logback.xml

具体配置如下:



    
    
    
  
   
    
    
        %d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n
    
  

   
  
     
    d:/logs/error.log
    
    
        %d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n
    
    
    
      
      ERROR
      
      ACCEPT
      
      DENY
    
    
    
      
      error.%d{yyyy-MM-dd}.log
      
      30
    
  

    
    
        localhost:4560
        
    

    
    
        ${fluentHost}
    

  
  
    
    
    
  

定时更新日志代码

/**
 * 日志级别更新定时2分钟一刷新
 */
@Scheduled(fixedRate=1000*60*2)
public void refresh() {
    String moduleKey = "com.ftsafe";
    //判断只有logback的日志实现才适用此方法
    if (log instanceof ch.qos.logback.classic.Logger) {
        Config applicationConfig = ConfigService.getAppConfig();
        String levelConfig = applicationConfig.getProperty("logger.level."+ moduleKey, null);
        ch.qos.logback.classic.Logger classicLog = (ch.qos.logback.classic.Logger) log;
        ch.qos.logback.classic.Logger logger = classicLog.getLoggerContext().getLogger(moduleKey);
        logger.setLevel(Level.toLevel(levelConfig));
        log.debug("logger modify level {}", levelConfig);
        log.info("logger modify level {}", levelConfig);
    }
    log.info("logger refresh invoked!");
    log.debug("logger refresh invoked!");
}

集中日志管理(win环境)

Elasticsearch

是一个搜索和分析引擎
解压

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.zip

启动

d:/baiduYun/java/elasticsearch-6.0.0/bin/elasticsearch.bat
Kibana

允许用户在 Elasticsearch 中使用图表和图表可视化数据
解压

https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-windows-x86_64.zip

启动

d:/baiduYun/java/kibana-6.0.0-windows-x86_64/bin/kibana.bat
logstash

是一个服务器端的数据处理管道,可以同时从多个源获取数据,将其转换为Elasticsearch之类的“stash”
解压

https://artifacts.elastic.co/downloads/logstash/Logstash-6.0.0.zip

配置logstash.conf配置文件内容

input {
    tcp {
        port => 4560
        host => localhost
    }
}
output {
    elasticsearch { hosts => ["localhost:9200"] }
    stdout { codec => rubydebug }
}

启动

d:/baiduYun/java/logstash-6.0.0/bin/logstash.bat -f d:\baiduYun\java\logstash-6.0.0\bin\logstash.conf

浏览日志

访问http://localhost:5601进入kibana界面,可以在Discover界面输入检索条件,查出希望检索到的内容。

附录:

spring logging

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
defaults.xml






    
    
    
    
    

    
    
    
    
    
    
    

console-appender.xml






    
        
            ${CONSOLE_LOG_PATTERN}
        
    

file-appender.xml






    
        
            ${FILE_LOG_PATTERN}
        
        ${LOG_FILE}
        
            ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
            ${LOG_FILE_MAX_SIZE:-10MB}
            ${LOG_FILE_MAX_HISTORY:-0}
        
    

参考内容


网页题目:日志分析实践与应用
URL分享:http://www.tsicrk.com/article/ghhgji.html

其他资讯

让你的专属顾问为你服务

1.9184s