中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot中Log日志集成的示例分析

發布時間:2021-12-28 10:39:09 來源:億速云 閱讀:243 作者:小新 欄目:開發技術

這篇文章主要介紹SpringBoot中Log日志集成的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    一、日志的分類

    1、名字分類

    • log4j :log for java (因為for和4讀音差不多,所以交log4j)

    • logBack 日志說明

    注意:springBoot默認集成了logback日志

    2、日志分類

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

    SpringBoot中Log日志集成的示例分析

    子日志:包日志 logger

    3、日志級別

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

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

    SpringBoot中Log日志集成的示例分析

    日志級別使用場景
    DEBUGdebug級別用來記錄詳細的信息,方便定位問題進行調試,在生產環境我們一般不開啟DEBUG
    INFO用來記錄關鍵代碼點的信息,以便代碼是否按照我們預期的執行,生產環境通常會設置INFO級別
    WARNING記錄某些不預期發生的情況,如磁盤不足
    ERROR由于一個更嚴重的問題導致某些功能不能正常運行時記錄的信息
    CRITICAL當發生嚴重錯誤,導致應用程序不能繼續運行時記錄的信息

    二、logback簡介

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

    1、 項目中日志分類

    日志分為兩類

    一種是rootLogger : 用來監聽項目中所有的運行日志 包括引入依賴jar中的日志

    一種是logger : 用來監聽項目中指定包中的日志信息

    2、 java項目中使用

    (1) logback配置文件

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

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
        <!--定義項目中日志輸出位置-->
        <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
            <!--定義項目的日志輸出格式-->
            <!--定義項目的日志輸出格式-->
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern> [%p] %d{yyyy-MM-dd HH:mm:ss} %m %n</pattern>
            </layout>
        </appender>
    
        <!--項目中跟日志控制-->
        <root level="INFO">
            <appender-ref ref="stdout"/>
        </root>
        <!--項目中指定包日志控制-->
        <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)使用默認日志配置

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

    三、SpringBoot中日志使用

    1、將Springboot的日志默認級別改為debug

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

    SpringBoot中Log日志集成的示例分析

    注意:因為springboot如果使用debug作為日志打印的東西太多了,所以改用info為默認日志級別,但是mybatis等使用的是debug作為默認日志級別,所以我們需要兼顧他的日志隔離級別

    2、SpringBoot項目啟動就會有一個默認的日志對象: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;
        }

    SpringBoot中Log日志集成的示例分析

    前端訪問后

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

    SpringBoot中Log日志集成的示例分析

    控制臺結果

    SpringBoot中Log日志集成的示例分析

    四、idea中使用日志插件簡化開發

    1、下載Log Support2插件

    SpringBoot中Log日志集成的示例分析

    2、重啟idea

    SpringBoot中Log日志集成的示例分析

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

    FrameWork框架選擇slf4j

    SpringBoot中Log日志集成的示例分析

    我們為什么要使用slf4j

    我們自己的系統中使用了logback這個日志系統

    我們的系統使用了A.jar,A.jar中使用的日志系統為log4j

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

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

    slf4j只是一個日志標準,并不是日志系統的具體實現 。理解這句話非常重要,slf4j只做兩件事情:

    • 提供日志接口

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

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

    SpringBoot中Log日志集成的示例分析

    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;
        }

    SpringBoot中Log日志集成的示例分析

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

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

    SpringBoot中Log日志集成的示例分析

    @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;
        }

    SpringBoot中Log日志集成的示例分析

    以上是“SpringBoot中Log日志集成的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    弋阳县| 武川县| 运城市| 吉木萨尔县| 红河县| 上高县| 安顺市| 大邑县| 高陵县| 榕江县| 开平市| 金门县| 长白| 肇庆市| 玉屏| 宁都县| 张家界市| 手游| 柳河县| 高密市| 常熟市| 岳阳县| 平凉市| 彰化市| 白山市| 缙云县| 彰武县| 新民市| 二连浩特市| 宁波市| 乌拉特前旗| 长治县| SHOW| 罗甸县| 西华县| 望江县| 乌拉特后旗| 万全县| 大英县| 全椒县| 梁平县|