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
Log4j2沒有默認的配置文件,須要咱們本身去建立配置文件以設置日誌。eclipse
在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>
本文主要講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的日誌文件,咱們的日誌就在這個文件中記錄。
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目錄下查看,發現日誌已經跑起來了。