Apache Log4j2日誌配置

1、Log4j概念

  Log4j是一款能夠記錄測試日誌的開源項目。經過調用其API記錄日誌信息,可讓咱們在執行用例時沒必要守在電腦面前等待結果,僅需在用例執行完成後,經過Log4j收集到的代碼執行信息查看執行結果,以調試程序。html

  它主要由3個部分組成:數據庫

    1) Logger:Logger類幫助記錄不一樣日誌級別的信息:trace < debug < info < warn < error < fatal ,越日後級別越高,輸出的日誌信息也越少;apache

    2) Appenders:Appenders是一個對象,log4j支持多種appenders樣式用以設置日誌輸出到不一樣目的地,能夠指定輸出目的爲控制檯、數據庫或具體的文件路徑;api

    3) Layout:Layout類用來配置日誌最終的輸出格式; 服務器

  Log4j如今推出了Log4j2,本文中主要介紹Log4j2的配置。app

2、Log4j2的配置

  Log4j2沒有默認的配置文件,須要咱們本身去建立配置文件以設置日誌。eclipse

  1)  下載log4j2的jar包:

    在apache官網下載:https://logging.apache.org/log4j/2.x/download.html  ,選擇二進制的zip包:maven

    

    在跳轉後的頁面中選擇其中一個服務器便可,我選的是第一個,點擊後便可下載:測試

      

    下載至本地後解壓,咱們只須要取其中的log4j-api-2.11.1.jar和log4j-core-2.11.1.jar這兩個包便可:spa

      

    而後在IntelliJ IDEA中點擊File ---> Project Structure ---> Modules中導入這兩個jar文件便可。

    或者咱們能夠在maven倉庫中,分別搜索log4j api和log4j core,搜索到內容後分別把代碼複製下來,在pom.xml文件中添加依賴,這個依據我的操做習慣而定,下圖是添加依賴的代碼:

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.11.1</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.11.1</version>
</dependency>

   2) log4j2配置文件

    本文主要講xml文件的配置,首先配置文件的名稱必須爲「log4j2.xml」,而且該文件必須在源文件夾下才能生效!

    建立log4j2.xml文件後,將其父文件夾設置爲源文件夾,右鍵文件夾 ---> Mark Directory as ---> Resource Root:      

      

    而後打開log4j2.xml文件,輸入配置內容:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <!--指定日誌文件的名稱-->
        <RollingFile name="File" fileName="logs/log4j2.log" filePattern="logs/log4j2-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm.ss} %-5level %c{1} -%msg%n" />
            <Policies>
                <!-- 指定日誌文件天天生成一個新的日誌文件;若是日誌大於100kb,則從新生成一個 -->
                <!-- <TimeBasedTriggeringPolicy interval="1" modulate="true" /> -->
                <SizeBasedTriggeringPolicy size="100KB" />
            </Policies>
        </RollingFile>
        <!--配置輸出到控制檯-->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm.ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="File" />
        </Root>
    </Loggers>
</Configuration>

    這樣,咱們的log4j2配置文件就配置好了。因爲上面指定了日誌文件須要存放在logs目錄下,所以咱們須要在該項目中,在和src同級的位置,建立一個名爲logs的文件夾,第一第二天志運行後,會自動在該文件夾下建立一個名爲log4j2.log的日誌文件,咱們的日誌就在這個文件中記錄。

  3) 在程序中運用日誌

package com.hizuche.testcase.log;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class Log4jDemo {
    private static Logger logger = LogManager.getLogger(Login.class.getName());
    public static void main(String[] args) {
        logger.debug("第一次記錄debug信息");
        logger.error("第一次記錄error信息");
        logger.fatal("第一次記錄fatal信息");
  }    
}

    而後,咱們在testng.xml文件中運行這個類,若是你用的是eclipse,那麼此時已經生成了日誌文件;若是是IntelliJ IDEA,會發現並無生成對應的日誌文件,由於IntelliJ IDEA默認是不輸出日誌的,須要在Run ---> Edit Configurations中對須要運行的類配置以下:

      

    而後到咱們的logs目錄下查看,發現日誌已經跑起來了。

相關文章
相關標籤/搜索