<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spring Boot 2.x中如何使用Log4j2記錄日志

          共 3469字,需瀏覽 7分鐘

           ·

          2022-01-01 16:37

          前沿技術(shù)早知道,彎道超車有希望
          積累超車資本,從關(guān)注DD開始

          上一篇我們介紹了Spring Boot 2.x中默認(rèn)日志框架Logback的使用。今天繼續(xù)說說日志,接下來我們要講是前段時間爆出核彈漏洞的Log4j2。雖然出了漏洞,讓很多小伙伴痛苦了1-2周(加班),但不可否認(rèn)的是Log4j2依然是目前性能最好的日志框架。所以,當(dāng)Logback性能上無法支撐的時候,替換使用Log4j2還是最為快速便捷的方法。下面,我們就來學(xué)習(xí)一下如何在Spring Boot 2.x版本中,替換Logback,使用Log4j2記錄日志。

          動手試一試

          這里省略Spring Boot項目的基礎(chǔ)創(chuàng)建,如果您還不會可以看本教程的快速入門

          下面的操作你可以基于Spring Boot 2.x中默認(rèn)日志框架Logback一文的例子繼續(xù)下去,也可以用任何一個Spring Boot 2.x的項目來嘗試。

          第一步:在pom.xml中引入Log4j2的Starter依賴spring-boot-starter-log4j2,同時排除默認(rèn)引入的spring-boot-starter-logging,比如下面這樣:

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-web</artifactId>
              <exclusions>
                  <exclusion>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-starter-logging</artifactId>
                  </exclusion>
              </exclusions>
          </dependency>

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-log4j2</artifactId>
          </dependency>

          第二步:在配置文件application.properties中,通過logging.config配置指定log4j2的配置文件位置,比如下面這樣:

          logging.config=classpath:log4j2.xml

          第三步:在resource目錄下新建log4j2.xml(這里不絕對,根據(jù)第二步中配置的內(nèi)容來創(chuàng)建),然后加入log4j2的日志配置,比如,下面這樣:

          <?xml version="1.0" encoding="UTF-8"?>
          <Configuration status="INFO">
              <Appenders>
                  <Console name="Console" target="SYSTEM_OUT">
                      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
                  </Console>
              </Appenders>
              <Loggers>
                  <Root level="INFO">
                      <AppenderRef ref="Console"/>
                  </Root>
              </Loggers>
          </Configuration>

          主要是方便大家理解如何把log4j2引入Spring Boot,對于log4j2如何配置這里不做詳細(xì)介紹,所以這里就放個簡單配置讓程序跑起來即可。如果想深入了解log4j2的配置:https://logging.apache.org/log4j/2.x/manual/configuration.html

          OK,到這里整合過程就結(jié)束了。是不是很簡單呢?如果您學(xué)習(xí)過程中如遇困難?可以加入我們超高質(zhì)量的Spring技術(shù)交流群,參與交流與討論,更好的學(xué)習(xí)與進步!更多Spring Boot教程博客 http://blog.didispace.com,歡迎收藏與轉(zhuǎn)發(fā)支持!

          常見問題

          可能有小伙伴會問,之前不是推薦大家用Slf4j來記錄日志,隔離了具體實現(xiàn)的日志框架么?那我怎么知道這一頓操作之后,真的已經(jīng)用上Log4j2了呢?

          這個其實很好判斷,大家只需要在用到日志的地方,加個端點,Debug跑起來,觀察下log對象就可以了,比如:

          下面這個是使用默認(rèn)Logback的情況:

          使用Logback

          下面這個是使用Log4j2的情況

          使用Log4j2

          最后,因為之前Log4j2有過很大的漏洞問題,大家一定要用最新版本哦!

          安全起見,建議您至少要用2.17.0以上的版本(如果用的Spring Boot 2.6.2+,那已經(jīng)是2.17.0了,不需要擔(dān)心)。當(dāng)然,目前最新已經(jīng)到2.17.1,您也可以自己升級到2.17.1來使用,如何升級呢?還是按照這篇文章介紹的操作即可。

          代碼示例

          本文的完整工程可以查看下面?zhèn)}庫中2.x目錄下的chapter8-2工程:

          • Github:https://github.com/dyc87112/SpringBoot-Learning/
          • Gitee:https://gitee.com/didispace/SpringBoot-Learning/

          如果您覺得本文不錯,歡迎Star支持,您的關(guān)注是我堅持的動力!

          與優(yōu)秀的人在一起,自己也會優(yōu)秀起來

          高質(zhì)量技術(shù)交流群,您還沒加入嗎?

          趕緊點擊加入我們,享受一起成長的快樂!


          前沿技術(shù)早知道,彎道超車有希望
          積累超車資本,從關(guān)注DD開始

          點擊閱讀原文,送你免費Spring Boot教程!

          瀏覽 21
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  啪啪啪视频免费在线观看 | 无码三级在线观看 | 欧一美一交一乱一交免费看 | 99伊人在线 | 免费观看高清无码 |