最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

圖文詳解SpringBoot中Log日志的集成

 更新時間:2021年12月28日 09:26:36   作者:小王java  
這篇文章主要給大家介紹了關(guān)于SpringBoot中Log日志的集成的相關(guān)資料,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一、日志的分類

1、名字分類

  • log4j :log for java (因?yàn)閒or和4讀音差不多,所以交log4j)
  • logBack 日志說明

注意:springBoot默認(rèn)集成了logback日志

2、日志分類

根日志:全局日志 rootLogger( springboot的日志級別:info)

子日志:包日志 logger

3、日志級別

OFF=》ERROR=》 WARNING=》INFO(springboot默認(rèn))=》DEBUG(mybatis默認(rèn)級別)=》ALL級別越高輸出信息越少

日志級別由低到高: 日志級別越高輸出的日志信息越少

日志級別 使用場景
DEBUG debug級別用來記錄詳細(xì)的信息,方便定位問題進(jìn)行調(diào)試,在生產(chǎn)環(huán)境我們一般不開啟DEBUG
INFO 用來記錄關(guān)鍵代碼點(diǎn)的信息,以便代碼是否按照我們預(yù)期的執(zhí)行,生產(chǎn)環(huán)境通常會設(shè)置INFO級別
WARNING 記錄某些不預(yù)期發(fā)生的情況,如磁盤不足
ERROR 由于一個更嚴(yán)重的問題導(dǎo)致某些功能不能正常運(yùn)行時記錄的信息
CRITICAL 當(dāng)發(fā)生嚴(yán)重錯誤,導(dǎo)致應(yīng)用程序不能繼續(xù)運(yùn)行時記錄的信息

二、logback簡介

Logback是由log4j創(chuàng)始人設(shè)計(jì)的又一個開源日志組件。目前,logback分為三個模塊:logback-core,logback-classic和logback-access。是對log4j日志展示進(jìn)一步改進(jìn)

1、 項(xiàng)目中日志分類

日志分為兩類

一種是rootLogger : 用來監(jiān)聽項(xiàng)目中所有的運(yùn)行日志 包括引入依賴jar中的日志

一種是logger : 用來監(jiān)聽項(xiàng)目中指定包中的日志信息

2、 java項(xiàng)目中使用

(1) logback配置文件

logback的配置文件必須放在項(xiàng)目根目錄中 且名字必須為logback.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <!--定義項(xiàng)目中日志輸出位置-->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!--定義項(xiàng)目的日志輸出格式-->
        <!--定義項(xiàng)目的日志輸出格式-->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern> [%p] %d{yyyy-MM-dd HH:mm:ss} %m %n</pattern>
        </layout>
    </appender>

    <!--項(xiàng)目中跟日志控制-->
    <root level="INFO">
        <appender-ref ref="stdout"/>
    </root>
    <!--項(xiàng)目中指定包日志控制-->
    <logger name="com.baizhi.dao" level="DEBUG"/>

</configuration>

(2)具體類中使用日志

@Controller
@RequestMapping("user")
public class UserController {
    private Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass());
    @RequestMapping("findAll")
    public String findAll(String name) {
        logger.debug("debug接收的姓名是: "+name);
        logger.info("info接收的姓名是: "+name);
        logger.warn("warn接收的姓名是: "+name);
        logger.error("error接收的姓名是: "+name);
        return "index";
    }
}

(3)使用默認(rèn)日志配置

logging:
  level:
    root: debug
    com.baizhi.dao: debug
  path: /Users/whj/aa.log
  file: bbb.log

三、SpringBoot中日志使用

1、將Springboot的日志默認(rèn)級別改為debug

#開啟日志 如果級別:off(少)>error>warn>info>debug(多)>all
logging:
  level:
    root: debug
    com.tjcu.controller: debug
    com.tjcu.dao: debug

注意:因?yàn)閟pringboot如果使用debug作為日志打印的東西太多了,所以改用info為默認(rèn)日志級別,但是mybatis等使用的是debug作為默認(rèn)日志級別,所以我們需要兼顧他的日志隔離級別

2、SpringBoot項(xiàng)目啟動就會有一個默認(rèn)的日志對象:logger

先配置 com.tjcu.controller: debug

#開啟日志 
logging:
  level:
    root: debug
    com.tjcu.controller: debug

controller里面使用日志對象

@Controller
@CrossOrigin
@ResponseBody
public class EmpController {
    //在控制層定義日志對象
    private static final Logger log = LoggerFactory.getLogger(EmpController.class);
    @Autowired
    private EmpService empService;

    @RequestMapping("/emp/queryAll")
    public  List<Emp> queryall(){
        List<Emp> emps = empService.showEmp();
        for (Emp emp : emps) {
            log.debug(String.valueOf(emp));
        }
        return emps;
    }

前端訪問后

http://localhost:8080/ems/emp/queryAll

控制臺結(jié)果

四、idea中使用日志插件簡化開發(fā)

1、下載Log Support2插件

2、重啟idea

3、Settings里面會新增一個Log Support目錄

FrameWork框架選擇slf4j

我們?yōu)槭裁匆褂胹lf4j

我們自己的系統(tǒng)中使用了logback這個日志系統(tǒng)

我們的系統(tǒng)使用了A.jar,A.jar中使用的日志系統(tǒng)為log4j

我們的系統(tǒng)又使用了B.jar,B.jar中使用的日志系統(tǒng)為slf4j-simple

這樣,我們的系統(tǒng)就不得不同時支持并維護(hù)logback、log4j、slf4j-simple三種日志框架,非常不便。

slf4j只是一個日志標(biāo)準(zhǔn),并不是日志系統(tǒng)的具體實(shí)現(xiàn) 。理解這句話非常重要,slf4j只做兩件事情:

  • 提供日志接口
  • 提供獲取具體日志對象的方法

4、如果直接使用Android的日志會沖突

5、測試

logd+enter(回車)后idea自動幫我們添加private static final Logger log1 = LoggerFactory.getLogger(EmpController.class);

其中d代表debug,i代表info,w代表warn

@Controller
@CrossOrigin
@ResponseBody
public class EmpController {
    private static final Logger log= LoggerFactory.getLogger(EmpController.class);
    @Autowired
    private EmpService empService;

    @RequestMapping("/emp/queryAll")
    public  List<Emp> queryall(){
        List<Emp> emps = empService.showEmp();
        for (Emp emp : emps) {
            log.debug("");
            log.info("");
            log.warn("");
        }
        return emps;
    }

6、使用占位的方式書寫日志而不用+號拼接

{}代表占位,一個{}代表占位一個

@Controller
@CrossOrigin
@ResponseBody
public class EmpController {
    private static final Logger log= LoggerFactory.getLogger(EmpController.class);
    @Autowired
    private EmpService empService;

    @RequestMapping("/emp/queryAll")
    public  List<Emp> queryall(){
        List<Emp> emps = empService.showEmp();
        for (Emp emp : emps) {
            log.info("員工的信息 {} {}",emp,"這是占位");
        }
        return emps;
    }

總結(jié)

到此這篇關(guān)于SpringBoot中Log日志集成的文章就介紹到這了,更多相關(guān)SpringBoot中Log日志集成內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?Stream流使用最多的方式示例詳解

    Java?Stream流使用最多的方式示例詳解

    在 Java 編程中,Stream 流提供了一種高效、便捷的方式來處理集合數(shù)據(jù),本文將詳細(xì)介紹 Java 中 Stream 流的用法,包括基礎(chǔ)用法、中級用法、高級用法以及一些特殊方法的使用,感興趣的朋友一起看看吧
    2024-12-12
  • 一篇文章看懂Java異常處理

    一篇文章看懂Java異常處理

    異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,這篇文章主要給大家介紹了關(guān)于Java異常處理的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Spring?Boot項(xiàng)目Jar包加密實(shí)戰(zhàn)教程

    Spring?Boot項(xiàng)目Jar包加密實(shí)戰(zhàn)教程

    本文詳細(xì)介紹了如何在Spring?Boot項(xiàng)目中實(shí)現(xiàn)Jar包加密,我們首先了解了Jar包加密的基本概念和作用,然后學(xué)習(xí)了如何使用Spring?Boot的Jar工具和第三方庫來實(shí)現(xiàn)Jar包的加密和解密,感興趣的朋友一起看看吧
    2024-02-02
  • zookeeper監(jiān)聽器原理的詳解

    zookeeper監(jiān)聽器原理的詳解

    今天小編就為大家分享一篇關(guān)于zookeeper監(jiān)聽器原理的詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java對比兩個實(shí)體的差異分析

    Java對比兩個實(shí)體的差異分析

    這篇文章主要介紹了Java對比兩個實(shí)體的差異分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中的繼承詳情

    Java中的繼承詳情

    這篇文章主要介紹了Java中的繼承詳情,繼承是面向?qū)ο笕筇卣髦唬梢允沟米宇惥哂懈割惖膶傩院头椒?,還可以在子類中重新定義,以及追加屬性和方法,下文介紹需要的朋友可以參考下
    2022-04-04
  • Java中List的contains()方法的使用小結(jié)

    Java中List的contains()方法的使用小結(jié)

    List?的?contains()?方法用于檢查列表中是否包含指定的元素,借助equals()方法進(jìn)行判斷,下面就來介紹Java中List的contains()方法的使用小結(jié),感興趣的可以了解一下
    2025-04-04
  • Java設(shè)計(jì)模式之中介模式

    Java設(shè)計(jì)模式之中介模式

    這篇文章主要介紹了Java設(shè)計(jì)模式之中介模式,中介模式(Mediator?Pattern),屬于行為型設(shè)計(jì)模式,目的是把系統(tǒng)中對象之間的調(diào)用關(guān)系從一對多轉(zhuǎn)變成一對一的調(diào)用關(guān)系,以此來降低多個對象和類之間的通信復(fù)雜性,需要的朋友可以參考下
    2023-12-12
  • Springboot實(shí)現(xiàn)發(fā)送郵件

    Springboot實(shí)現(xiàn)發(fā)送郵件

    這篇文章主要為大家詳細(xì)介紹了Springboot實(shí)現(xiàn)發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 使用redisTemplate的scan方式刪除批量key問題

    使用redisTemplate的scan方式刪除批量key問題

    這篇文章主要介紹了使用redisTemplate的scan方式刪除批量key問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

武城县| 马尔康县| 奈曼旗| 长海县| 金门县| 苍南县| 海安县| 武邑县| 抚顺市| 奎屯市| 榆社县| 诸暨市| 武清区| 北辰区| 阳江市| 吴川市| 和林格尔县| 灵山县| 鹤山市| 吉林省| 南宫市| 高平市| 始兴县| 贺兰县| 扎兰屯市| 资中县| 霍林郭勒市| 梁河县| 昭通市| 满城县| 永丰县| 罗甸县| 景谷| 洛川县| 惠州市| 庄浪县| 简阳市| 屏边| 麻栗坡县| 吴桥县| 平度市|