Spring Boot日志配置

06-01 1495阅读

目录

logback

使用logback

获取日志对象

日志级别 

控制日志输出级别

日志输出格式控制

配置方式 

日志转存 

示例 


日志是应用程序不可或缺的一部分,记录着程序运行的信息。主要作用有:

  • 记录日常运营的重要信息
  • 记录应用报错信息
  • 记录过程数据等

    logback

    Logback 作为 Spring Boot 的默认日志实现框架,异步吞吐量相比于Log4j更加强大:

    组件说明
    Logger日志记录器,存放日志对象,负责日志分类和级别控制
    Appender指定日志输出目的地
    Layout日志格式转换成字符串,输出格式化的日志信息

    使用logback

         在SpringBoot项目中,导入了spring-boot-starter起步依赖,则默认导入了logback所需的依赖,同样导入spring-boot-starter-web也是如此:

    Spring Boot日志配置

    获取日志对象

    方法一:

    private static final Logger log = LoggerFactory.getLogger(LogbackApplication.class);
    log.warn("sdadas");
    log.info("info...");
    log.error("jksabnfijASBF");
    log.debug("daskdhaoisjdhja");

    注意:使用Logger时导入的包是org.slf4j下的,而不是java.util。

    方法二:使用@Slf4j注解:

    注:该方法在启用前要先启用lombok(SpringBoot内置了lombok)

      
                org.projectlombok
                lombok
                true
      
    

    该方法省去了创建对象的麻烦,只需要加上@Slf4j注解,就会自动生成log变量。

    日志级别 

    SpringBoot的日志级别用于控制日志输出的详细程度,日志级别越高,输出的日志越详细。

    级别说明
    TRACE运行堆栈信息,使用率低
    DEBUG调试时打印关键信息
    INFO普通的打印信息,记录运维过程数据
    WARN警告数据,不影响使用
    ERROR记录错误日志信息
    FATAL致命错误,代码异常导致程序退出的错误

    控制日志输出级别

        可以在springboot的配置文件中设置日志的输出级别:

    logging:
      level:
        root: error

    Spring Boot日志配置

    日志输出格式控制

        对于单条日志信息来说,日期,触发位置,记录信息是最核心的信息。级别用于做筛选过滤,PID与线程名用于做精准分析。

    Spring Boot日志配置

    配置方式 

    logging:
      pattern:
        console: "%logger{36} - %msg%n"    #控制台输出格式
        file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" #文件输出格式
    占位符说明示例输出
    %d{yyyy-MM-dd HH:mm:ss}日期时间,按照指定的格式输出。yyyy-MM-dd HH:mm:ss 表示年-月-日 时:分:秒。2023-10-05 14:30:45
    [%thread]输出日志的线程名称,放在方括号中。[main]
    %-5level日志级别,固定宽度为 5 个字符,左对齐。常见的级别有 INFO、DEBUG、ERROR 等。INFO (注意后面有一个空格)
    %logger{36}日志记录器的名称,最多显示 36 个字符。如果名称超过 36 个字符,会进行截断。com.example.MyClass
    -一个分隔符,用于分隔日志记录器名称和日志消息。-
    %msg日志消息内容,即开发者在代码中记录的日志信息。This is a log message.
    %n换行符,表示日志记录结束并换行。(在文件中表现为换行)

     示例:"%d{yyyy-MM-dd HH:mm:ss} %logger{36} - %msg%n"

    Spring Boot日志配置

    日志转存 

        日志不仅能在控制台上显示,还可以存在文件中,方便后续的查阅。

    配置方式:设置日志文件名即可

    logging:

        file:

            path: ./logs/   #路径

    示例 

    logging:
      file:
        path: ./logs/

     Spring Boot日志配置

     注意:不需要手动创建该路径,Springboot程序启动后会自动创建。如果不指定文件名,会自动默认创建在spring.log文件中。如果不修改路径,日志会追加在spring.log文件中。

     对于线上复杂的情况,可以对日志文件进行配置:

    首先创建一个logback的配置文件:

    
    
    
    
    
        
        
        
        
        
        
        
        
        
        
        
        
            
            
                ${log.pattern}
                ${log.charset}
            
        
        
        
           ${log.base}/info/_info.log
            
            
                ${log.pattern}
                ${log.charset}
            
            
            
                
                ${log.base}/info/archive/info_%d{yyyy-MM-dd}.%i.log.zip
                
                ${log.max.days}
                
                ${log.max.size}
            
            
            
                INFO
                ACCEPT
                DENY
            
        
        
        
            ${log.base}/warn/_warn.log
            
            
                ${log.pattern}
                ${log.charset}
            
            
            
                ${log.base}/warn/archive/warn_%d{yyyy-MM-dd}.%i.log.zip
                
                
                ${log.max.days}
                
                ${log.max.size}
            
            
                WARN
                ACCEPT
                DENY
            
        
        
        
            ${log.base}/error/_error.log
            
            
                ${log.pattern}
                ${log.charset}
            
            
            
                ${log.base}/error/archive/error_%d{yyyy-MM-dd}.%i.log.zip
                
                ${log.max.days}
                
                ${log.max.size}
            
            
            
                ERROR
                ACCEPT
                DENY
            
        
        
        
        
            
            
        
        
        
             
            
            
            
        
    
    

    注:Springboot会默认加载classpath:logback-spring.xml或者classpath:logback-spring.groovy或者:classpath:logback.xml,可自定义配置:

    logging: 
      config: classpath:logback-suke.xml

    不要使用logback-logback.xml这个来命名,否则spring boot将不能完全实例化

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码