1.首先在pom中引入相關jar包apache
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency>
2.配置相關的log4j2.xmlapi
<?xml version="1.0" encoding="UTF-8" ?> <Configuration> <Appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%-5p %marker](%C:%L) %m%n" /> </Console> <File name="FILE" fileName="${sys:catalina.home}/logs/日誌名字.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%-5p %marker](%C:%L) %m%n" /> </File> </Appenders> <Loggers> <Logger name="產生日誌包" level="debug" additivity="false"> <AppenderRef ref="STDOUT" /> <AppenderRef ref="FILE" /> </Logger> <Logger name="產生日誌包" level="debug" additivity="false"> <AppenderRef ref="STDOUT" /> <AppenderRef ref="FILE" /> </Logger> <Root level="warn"> <AppenderRef ref="STDOUT" /> <AppenderRef ref="Async" /> </Root> </Loggers> </Configuration>
<logger>標籤的做用:爲不一樣的包使用不一樣的log配置。
如配置了 debug
<Logger name="產生日誌包" level="debug" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="FILE" />
</Logger>日誌
則包及其子包下的全部類使用的log配置都是debug,且輸出到FILE
其餘類使用的log配置都是根loggercode
logger的默認配置具備繼承特性, 即全部的logger配置繼承根logger,
name爲「a.b.c"的logger配置繼承name爲"a.b"的配置, name爲"a.b"又繼承name爲"a"的logger而配置。。。
若使用了additivity="false"表示不繼承父logger的配置。xml
3.使用@Log4j2相關注解對象
4.經過try...catch以及拋出異常,將異常寫入文件 Java異常處理主要經過5個關鍵字控制:try、catch、throw、throws和finally。try的意思是試試它所包含的代碼段中是否會發生異常;而catch當有異常時抓住它,並進行相應的處理,使程序不受異常的影響而繼續執行下去;throw是在程序中明確引起異常;throws的做用是若是一個方法能夠引起異常,而它自己並不對該異常處理,那麼它必須將這個異常拋給調用它的方法;finally是不管發不發生異常都要被執行的代碼
關鍵字:throw,throws,try和catch的用法以下:
一、throws出如今方法的聲明中,表示該方法可能會拋出的異常,容許throws後面跟着多個異常類型
二、throw出如今方法體中,用於拋出異常。當方法在執行過程當中遇到異常狀況時,將異常信息封裝爲異常對象,而後throw。
三、try出如今方法體中,它自身是一個代碼塊,表示嘗試執行代碼塊的語句。若是在執行過程當中有某條語句拋出異常,那麼代碼塊後面的語句將不被執行。
四、catch出如今try代碼塊的後面,自身也是一個代碼塊,用於捕獲異常try代碼塊中可能拋出的異常。catch關鍵字後面緊接着它能捕獲的異常類型,全部異常類型的子類異常也能被捕獲。
繼承