<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 一、日志框架簡介 Spring Boot 默認的日志記錄框架使用的是 Logback,此外我們還可以選擇 Log4j 和 Log4j2。其中 Log4j 可以認為是一個過時的函數庫,已經停止更新,不推薦使用,相比之下,性能和功能也是最差的。logback 雖然是 Spring Boot 默認的,但性能上還是不及 Log4j2,因此,在現階段,日志記錄首選 Log4j2。 ![](https://box.kancloud.cn/ef1a0347b2282a671fd0b95f060f62b3_685x363.png) 當然,在實際項目開發中,我們不會直接調用上面三款日志框架的 API 去記錄日志,因為這樣如果要切換日志框架的話代碼需要修改的地方太多。因此,最佳實踐是采用 SLF4J 來進行日志記錄,SLF4J 是基于門面模式實現的一個通用日志框架,它本身并沒有日志記錄的功能,實際的日志記錄還是需要依賴 Log4j、logback 或者 Log4j2。使用 SLF4J,可以實現簡單快速地替換底層的日志框架而不會導致業務代碼需要做相應的修改。SLF4J + Log4j2 是我們推薦的日志記錄選型。 在使用 SLF4J 進行日志記錄時,通常都需要在每個需要記錄日志的類中定義 Logger 變量,如下所示: ~~~ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @RestController public class SmsController { private static final Logger LOGGER = LoggerFactory.getLogger(SmsController.class); ... } ~~~ 這顯然屬于重復性勞動,降低了開發效率,如果你在項目中引入了 Lombok,那么可以使用它提供的 @Slf4j 注解來自動生成上面那個變量,默認的變量名是 log,如果我們想采用慣用的 LOGGER 變量名,那么可以在工程的 main/java 目錄中增加 lombok.config 文件,并在文件中增加 lombok.log.fieldName=LOGGER 的配置項即可。 ## 二、日志級別 細說各日志框架整合配置前,我們先來大致了解下,最常見的日志的幾個級別:ERROR, WARN, INFO, DEBUG和TRACE。像其他的,比如ALL、OFF和FATAL之類的開發過程中應該基本上是不會涉及的。所以以下從低到高一次介紹下常見的日志級別。 1. TRACE:追蹤。一般上對核心系統進行性能調試或者跟蹤問題時有用,此級別很低,一般上是不開啟的,開啟后日志會很快就打滿磁盤的。 2. DEBUG:調試。這個大家應該不陌生了。開發過程中主要是打印記錄一些運行信息之類的。 3. INFO:信息。這個是最常見的了,大部分默認就是這個級別的日志。一般上記錄了一些交互信息,一些請求參數等等。可方便定位問題,或者還原現場環境的時候使用。此日志相對來說是比較重要的。 4. WARN:警告。這個一般上是記錄潛在的可能會引發錯誤的信息。比如啟動時,某某配置文件不存在或者某個參數未設置之類的。 5. ERROR:錯誤。這個也是比較常見的,一般上是在捕獲異常時輸出,雖然發生了錯誤,但不影響系統的正常運行。但可能會導致系統出錯或是宕機等。 ## 三、常見術語概念解析 1. appender:主要控制日志輸出到哪里,比如:文件、數據庫、控制臺打印等 2. logger: 用來設置某一個包或者具體某一個類的日志打印級別、以及指定appender 3. root:也是一個logger,是一個特殊的logger。所有的logger最終都會將輸出流交給root,除非設置logger中配置了additivity="false"。 4. rollingPolicy:所有日志都放在一個文件是不好的,所以可以指定滾動策略,按照一定周期或文件大小切割存放日志文件。 5. RolloverStrategy:日志清理策略。通常是指日志保留的時間。 6. 異步日志:單獨開一個線程做日志的寫操作,達到不阻塞主線程的目的 ## 四、性能測試結果 ![](https://box.kancloud.cn/2387ee5e9f33cb9ee2415146308df401_757x398.png) 參考:[log4j2官網](http://logging.apache.org/log4j/2.x/manual/async.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看