国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot日志框架實踐

inapt / 1831人閱讀

摘要:概述應用中,日志一般分為以下個級別錯誤信息警告信息一般信息調試信息跟蹤信息使用的作為內部的日志框架,其僅僅是一個日志接口,在實際應用中需要為該接口來指定相應的日志實現。默認的日志實現是,是自帶的日志包,此外當然也支持這類很流行的日志實現。

概述

Java應用中,日志一般分為以下5個級別:

ERROR 錯誤信息

WARN 警告信息

INFO 一般信息

DEBUG 調試信息

TRACE 跟蹤信息

Spring Boot使用Apache的Commons Logging作為內部的日志框架,其僅僅是一個日志接口,在實際應用中需要為該接口來指定相應的日志實現。

SpringBt默認的日志實現是Java Util Logging,是JDK自帶的日志包,此外SpringBt當然也支持Log4J、Logback這類很流行的日志實現。

統一將上面這些日志實現統稱為日志框架

下面我們來實踐一下!

注: 本文首發于 My 公眾號 CodeSheep ,可 長按掃描 下面的 小心心 來訂閱 ↓ ↓ ↓

使用Spring Boot Logging插件

首先application.properties文件中加配置:

logging.level.root=INFO

控制器部分代碼如下:

package com.hansonwang99.controller;

import com.hansonwang99.K8sresctrlApplication;
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;

@RestController
@RequestMapping("/testlogging")
public class LoggingTestController {
    private static Logger logger = LoggerFactory.getLogger(K8sresctrlApplication.class);
    @GetMapping("/hello")
    public String hello() {
        logger.info("test logging...");
        return "hello";
    }
}

運行結果

由于將日志等級設置為INFO,因此包含INFO及以上級別的日志信息都會打印出來

這里可以看出,很多大部分的INFO日志均來自于SpringBt框架本身,如果我們想屏蔽它們,可以將日志級別統一先全部設置為ERROR,這樣框架自身的INFO信息不會被打印。然后再將應用中特定的包設置為DEBUG級別的日志,這樣就可以只看到所關心的包中的DEBUG及以上級別的日志了。

控制特定包的日志級別

application.yml中改配置

logging:
  level:
    root: error
    com.hansonwang99.controller: debug

很明顯,將root日志級別設置為ERROR,然后再將com.hansonwang99.controller包的日志級別設為DEBUG,此即:即先禁止所有再允許個別的 設置方法

控制器代碼

package com.hansonwang99.controller;

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;

@RestController
@RequestMapping("/testlogging")
public class LoggingTestController {
    private Logger logger = LoggerFactory.getLogger(this.getClass());
    @GetMapping("/hello")
    public String hello() {
        logger.info("test logging...");
        return "hello";
    }
}

運行結果

可見框架自身的INFO級別日志全部藏匿,而指定包中的日志按級別順利地打印出來

將日志輸出到某個文件中

logging:
  level:
    root: error
    com.hansonwang99.controller: debug
  file: ${user.home}/logs/hello.log

運行結果

使用Spring Boot Logging,我們發現雖然日志已輸出到文件中,但控制臺中依然會打印一份,發現用org.slf4j.Logger是無法解決這個問題的

集成Log4J日志框架

pom.xml中添加依賴

       
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
        
            org.springframework.boot
            spring-boot-starter-log4j2
        

在resources目錄下添加log4j2.xml文件,內容如下:




    
        
            
        
    

    

        
            
        
        
    

其他代碼都保持不變

運行程序發現控制臺沒有日志輸出,而hello2.log文件中有內容,這符合我們的預期:

而且日志格式和pattern="%d{HH:mm:ss,SSS} %p %c (%L) - %m%n"格式中定義的相匹配

Log4J更進一步實踐

pom.xml配置:

        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        

        
            org.springframework.boot
            spring-boot-starter-log4j2
        

log4j2.xml配置



    

        springboot-web
        logs/${app_name}

    
    
        
            
        

        
            
                
                
            
            
            
                
                
                
                
            
            
            
        

        
            
                
                
            
            
            
                
                
                
                
            
            
            
        

        
            
            
            
                
                
                
                
            
            
            
        

    

    


        
            
            
            
            
        

    

控制器代碼:

package com.hansonwang99.controller;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/testlogging")
public class LoggingTestController {
    private final Logger logger = LogManager.getLogger(this.getClass());
    @GetMapping("/hello")
    public String hello() {
        for(int i=0;i<10_0000;i++){
            logger.info("info execute index method");
            logger.warn("warn execute index method");
            logger.error("error execute index method");
        }
        return "My First SpringBoot Application";
    }
}

運行結果

日志會根據不同的級別存儲在不同的文件,當日志文件大小超過2M以后會分多個文件壓縮存儲,生產環境的日志文件大小建議調整為20-50MB。

后記

作者更多的原創文章在此,歡迎觀賞

My Personal Blog

作者更多的SpringBt實踐文章在此:

Spring Boot應用監控實戰

SpringBoot應用部署于外置Tomcat容器

ElasticSearch搜索引擎在SpringBt中的實踐

初探Kotlin+SpringBoot聯合編程

Spring Boot日志框架實踐

SpringBoot優雅編碼之:Lombok加持

如果有興趣,也可以抽點時間看看作者一些關于容器化、微服務化方面的文章:

利用K8S技術棧打造個人私有云 連載文章

從一份配置清單詳解Nginx服務器配置

Docker容器可視化監控中心搭建

利用ELK搭建Docker容器化應用日志中心

RPC框架實踐之:Apache Thrift

RPC框架實踐之:Google gRPC

微服務調用鏈追蹤中心搭建

Docker容器跨主機通信

Docker Swarm集群初探

高效編寫Dockerfile的幾條準則

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71051.html

相關文章

  • [直播視頻] 《Java 微服務實踐 - Spring Boot 系列》限時折扣

    摘要:作為微服務的基礎設施之一,背靠強大的生態社區,支撐技術體系。微服務實踐為系列講座,專題直播節,時長高達小時,包括目前最流行技術,深入源碼分析,授人以漁的方式,幫助初學者深入淺出地掌握,為高階從業人員拋磚引玉。 簡介 目前業界最流行的微服務架構正在或者已被各種規模的互聯網公司廣泛接受和認可,業已成為互聯網開發人員必備技術。無論是互聯網、云計算還是大數據,Java平臺已成為全棧的生態體系,...

    Enlightenment 評論0 收藏0
  • Spring Boot Admin 2.0開箱體驗

    摘要:概述在我之前的應用監控實戰一文中,講述了如何利用版本來可視化地監控應用。接下來我們就來創建一個待監控的示例。 showImg(https://segmentfault.com/img/remote/1460000015671446); 概述 在我之前的 《Spring Boot應用監控實戰》 一文中,講述了如何利用 Spring Boot Admin 1.5.X 版本來可視化地監控 ...

    CastlePeaK 評論0 收藏0
  • Spring Boot應用監控實戰

    摘要:概述之前講過容器的可視化監控,即監控容器的運行情況,包括使用率內存占用網絡狀況以及磁盤空間等等一系列信息。實戰一下中添加依賴啟動應用程序之后,只要在瀏覽器中輸入端點信息就能獲得應用的一些狀態信息。 showImg(https://segmentfault.com/img/remote/1460000014684947); 概述 之前講過Docker容器的可視化監控,即監控容器的運行情...

    mtunique 評論0 收藏0
  • Spring Boot 最流行的 16 條實踐解讀!

    摘要:來源是最流行的用于開發微服務的框架。以下依次列出了最佳實踐,排名不分先后。這非常有助于避免可怕的地獄。推薦使用構造函數注入這一條實踐來自的項目負責人。保持業務邏輯免受代碼侵入的一種方法是使用構造函數注入。 showImg(https://mmbiz.qpic.cn/mmbiz_jpg/R3InYSAIZkHQ40ly9Oztiart2lESCyjCH0JwFRp3oErlYobhibM...

    Ethan815 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<