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

溫馨提示×

溫馨提示×

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

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

如何進行Log4j2的簡單使用

發布時間:2021-11-10 18:50:59 來源:億速云 閱讀:139 作者:柒染 欄目:大數據

本篇文章為大家展示了如何進行Log4j2的簡單使用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

日志是一個系統經常用到的功能,我們可以在調試的時候依靠日志查看輸出,在程序運行的時候通過查看日志判斷程序運行狀態。在Java世界中,有一個非常著名的日志類庫——Log4j。現在Log4j也有了新版本,就是Log4j2。新版本的好處我就不多說了。讓讓我們來開始使用吧。

引入Log4j2

要使用Log4j2,第一步就是先導入它的jar包。如果是普通項目的話,到log4j2官網下載jar包,然后將log4j-api-2.7.jarlog4j-core-2.7.jar添加到你項目的類路徑下。

如果使用Maven或者Gradle的話,到mvn倉庫查詢查找這兩個包,然后添加到項目依賴中。這樣就完成了準備工作。

然后打開項目,添加以下兩句,創建一個Logger并調試一些信息。注意這里的Logger和LogManager兩個類的全名分別是org.apache.logging.log4j.LogManagerorg.apache.logging.log4j.Logger。不要和Java自帶的java.util.logging下的日志類搞混了。

Logger logger = LogManager.getLogger();
logger.debug("5555555");

然后運行一下項目,就可以看到對應的輸出了。

日志級別

如果你照著前面的做了,就會發現其實什么輸出都沒有,只有這么一句話:ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.。這是說因為沒找到配置文件,所以使用默認的日志級別,向控制臺只輸出錯誤信息。這就引出了一個日志級別的問題。

日志分為幾個級別,按照從輕往重如此排列:trace、debug、info、warn、error、fatal。相應的Logger類也有這么幾個對應方法,用于輸出相應的日志信息。如果我們定義了一個級別,那么低于這個級別的日志不會輸出。由于沒有配置文件,所以默認情況下的日志級別是error,正如前面的輸出那樣。這樣一來,低于error的日志就不會輸出。所以我們回到剛才,將debug方法改為error方法,再次運行項目。這次出現了日志輸出。

22:21:58.600 [Test worker] ERROR yitian.bean.BeanTest - 5555555

配置文件

前面已經簡單演示了Log4j2的用法。下面就來說說Log4j2的配置文件。Log4j2既可以使用配置文件配置,也可以使用編程方式用代碼來配置。這里簡單說說配置文件方式。Log4j2支持多種配置文件,XML、JSON、YAML和perperties文件都支持,當然最常用的還是XML文件。將配置文件放在類路徑下即可,如果使用Maven或者Gradle的話,就是在resources文件夾下。

前面如果沒有配置文件的話,Log4j2就會使用一個默認配置,等效于下面的配置文件。

<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN">
  <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="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers></Configuration>

配置文件有兩個主要的地方,第一個是Appender節點,這個節點下會有很多Appender,也就是我們日志輸出的目的地,可以是控制臺也可以是某個文件,甚至是專用的遠程日志服務器。默認情況下只有一個控制臺。第二種重要的節點是Loggers節點,這個節點下可以有很多個Logger,每個Logger可以記錄不同的信息,Logger之間也可以共享某些配置。上面定義了一個Root Logger,如果沒有指定Logger 的名稱或者指定的Logger不存在,就會使用Root,而且Root Logger下的配置默認會被其他Logger繼承,除非它們定義了自己的配置。

然后我們再回頭看看Appenders節點,其中有這么一段:<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>。這里定義的就是日志的輸出格式。下面來簡單說說常用的輸出格式。

  • %d{HH:mm:ss.SSS} 輸出時間,精確度為毫秒。

  • %t 輸出當前線程的名稱。

  • %-5level 輸出日志級別,-5表示左對齊并且固定占5個字符寬度,如果不足用空格補齊。

  • %logger 輸出Logger名稱,如果是Root的話就沒有名稱。

  • %msg 日志信息,也就是我們傳入的信息。

  • %n 換行。

  • %F 輸出所在的文件名。

  • %L 輸出行號。

  • %M 輸出所在方法名。

  • %l  輸出語句所在的位置信息,包括文件名、類名、方法名、行號。

自定義配置

自定義Logger

說了這么多,現在我們就可以開始自定義配置文件了。首先我們來添加一個新的Logger,來記錄所有信息,這個Logger的名稱就叫做TRACE_ALL吧。這個Logger有兩個屬性,level指定記錄級別,additivity指定傳遞性。假如傳遞性指定為true,如果我們現在使用TRACE_ALL記錄一個debug級別的日志,由于debug級別也符合Root的記錄范圍,這樣這個日志就會記錄兩遍。最后,我們用<AppenderRef ref="Console"/>指定使用上面的控制臺Appender。

現在配置文件應該是這樣。

<?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="debug">
            <AppenderRef ref="Console"/>
        </Root>
        <Logger name="TRACE_ALL" level="trace" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>
    </Loggers></Configuration>

程序代碼是這樣的。在調用getLogger的時候指定要使用哪一個Logger。

Logger logger = LogManager.getLogger("TRACE_ALL");
logger.info("5555555");

自定義Appender

除了使用Console作為日志輸出目的地之外,我們還可以定義其他的輸出,比如文件。下面我們來新建一個文件Appender。在Appenders節點下新建一個File節點,name和fileName屬性分別指定Appender名稱和目的文件名。然后我們指定TRACE_ALL Logger同時將日志輸出到控制臺和文件。

<?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>
        <File name="File" fileName="D:\Desktop\mylog.txt">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console"/>
        </Root>
        <Logger name="TRACE_ALL" level="trace" additivity="true">
            <AppenderRef ref="File"/>
            <AppenderRef ref="Console"/>
        </Logger>
    </Loggers></Configuration>

再次運行程序,我們就會發現這次在對應的路徑下多出一個文件,這個文件的內容就是我們的輸出。

上述內容就是如何進行Log4j2的簡單使用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

沙湾县| 抚顺县| 庆阳市| 奉新县| 江北区| 泗水县| 西乌珠穆沁旗| 屯昌县| 聊城市| 襄汾县| 阿坝县| 绥中县| 仁怀市| 额济纳旗| 青龙| 缙云县| 灵川县| 浦北县| 天等县| 炎陵县| 柞水县| 尖扎县| 元氏县| 延吉市| 宿迁市| 平泉县| 平遥县| 噶尔县| 共和县| 西平县| 东辽县| 石楼县| 定边县| 蒙山县| 明水县| 卓尼县| 全州县| 泾川县| 深州市| 宜春市| 沙坪坝区|