统一日志设计原则


title: 统一日志框架设计
date: 2018-07-16 14:28:36
tags:

  • 微服务改造
  • SpringBoot
  • SpringCloud
  • 日志
  • log
    categories:
  • 微服务

日志的目的

微服务系统中日志是一个重要的模块,日志可以用于排查问题、查询历史、统计分析、监控报警

统一的日志规范

因为微服务是有大量的运行实例的, 虽然可以指定统一的日志规范和目录,然后由开发人员各自去配置和部署,难免容易出错,造成日志的丢失和日志的错乱,所以可以在统一的框架层面来确定好日志配置,这样业务方也不需要去进行修改。

统一日志的核心元素要点

  • 日志内容,包括时间、线程号、级别、所在类、具体内容、所在行数、traceid等
  • 保存格式,一般来说都要按时间进行切割,最好按日期和小时进行切割,每一天创建一个目录,一个目录下面有24个文件,分别保存24个小时的内容
  • 日志保存地址,最好放在linux系统的/data目录,因为日志量可能会很大,所以也要时刻关注机器的磁盘空间
  • 日志级别,如果有需要,可以根据日志的级别再一次的进行切割,比如把error日志独立出来,方便排查问题
  • �日志聚合,可以通过elk来把日志进行统一,为了方便后续的统计,同时也可以通过rsyslog把日志集中归属到dfs中,方便统一在终端进行查看
  • 然后可以通过不同的环境参数来调整一些参数来满足不同环境的需求

配置方式

  • 可以在框架层面增加配置文件logback-spring.xml,进行配置的统一,如果有特殊需求,可以业务方自己定义自己的logback-spring.xml来进行替换

具体内容参考实例(仅供参考)





  
  

  
  
    
    
      
        
        [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%X{traceId}] %-5level %logger{50} - %msg%n
      
    
  
  
  
    
    
      
        
        [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%X{traceId}] %-5level %logger{50} - %msg%n
      
    
    
    
      /opt/logs/${LOG_FILE}/${LOG_FILE}.log
      
        
        /opt/logs/${LOG_FILE}/%d{yyyy-MM-dd, aux}/${LOG_FILE}_%d{HH}.log
        
        1440
      
      
        
        [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%X{traceId}] %-5level %logger{50} - %msg%n
        utf-8
      
    

    
      /opt/logs/${LOG_FILE}/${LOG_FILE}_err.log
      
        /opt/logs/${LOG_FILE}/%d{yyyy-MM-dd, aux}/${LOG_FILE}_%d{HH}_err.log
      
      true
      
        [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%X{traceId}] %-5level %logger{50} - %msg%n
        utf-8
      
      
        ERROR
        ACCEPT
        DENY
      
    
    

    
    
      ${syslogHost}
      514
      true
      local4
      ${applicationName}: [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%X{traceId}] %-5level %logger{50} - %msg%n %throwable
    

    
      ${syslogHost}
      true
      514
      local5
      ${applicationName}: [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t] [%X{traceId}] %-5level %logger{50} - %msg%n %throwable
    

  

你可能感兴趣的:(统一日志设计原则)