在Java下應用log4j記載日記的辦法。本站提示廣大學習愛好者:(在Java下應用log4j記載日記的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是在Java下應用log4j記載日記的辦法正文
1、媒介
log4j是一個用Java編寫的靠得住,疾速和靈巧的日記框架(API),它在Apache軟件允許下宣布。 Log4j曾經被移植到了C,C++,C#,Perl,Python和Ruby等說話中。
Log4j是高度可設置裝備擺設的,並可經由過程在運轉時的內部文件設置裝備擺設。它依據記載的優先級別,並供給機制,以指導記載信息到很多的目標地,例如:數據庫,文件,掌握台,UNIX體系日記等。
Log4j中有三個重要構成部門:
loggers: 擔任捕捉記載信息。
appenders : 擔任宣布日記信息,以分歧的首選目標地。
layouts: 擔任格局化分歧作風的日記信息。
留意:本文是基於log4j 2.X及以上版本。
2、裝置
log4j-core-xx.jar
log4j-api-xx.jar
log4j-web-xx.jar(web項目標須要援用)
3、設置裝備擺設
預備些日記的類添加以下援用:
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;
static Logger logger = LogManager.getLogger(Test.class.getName());
設置裝備擺設文件地位位於:src根目次下,即便沒有設置裝備擺設文件的話也不會報錯,默許以console的情勢停止輸入。
log4j2設置裝備擺設文件與log4(1.X版本的有很年夜分歧),只能采取.xml、.json或許 .jsn格局,詳細設置裝備擺設以下(${web:rootDir} 表現web根目次):
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error">
<!--先界說一切的appender-->
<appenders>
<!--這個輸入掌握台的設置裝備擺設-->
<Console name="Console" target="SYSTEM_OUT">
<!--這個是輸入日記的格局-->
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</Console>
<!--文件會打印出一切信息,這個log每次運轉法式會主動清空,由append屬性決議,合適暫時測試用-->
<File name="Error" fileName="${web:rootDir}/logs/error.log" append="false">
<!--文件只記載level及以下級其余信息(onMatch),其他的直接謝絕(onMismatch)-->
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout charset="UTF-8" pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</File>
<!--這個會打印出一切的信息,每次年夜小跨越size,則這size年夜小的日記會主動存入按年份-月份樹立的文件夾上面並停止緊縮,作為存檔-->
<RollingFile name="RollingFile" fileName="${web:rootDir}/logs/history.log"
filePattern="log/$${date:yyyy-MM}/history-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout charset="UTF-8" pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
<SizeBasedTriggeringPolicy size="50MB"/>
</RollingFile>
</appenders>
<!--然後界說logger,只要界說了logger並引入的appender,appender才會失效-->
<loggers>
<!--樹立一個默許的root的logger-->
<root level="trace">
<appender-ref ref="Error"/>
<appender-ref ref="RollingFile"/>
<appender-ref ref="Console"/>
</root>
</loggers>
</configuration>
4、通俗項目和web項目
關於通俗項目來說,停止以上設置裝備擺設完成後便可以正常應用,關於web項目來說,是不會生成日記文件的。須要在web.xml外面<web-app>根節點下添加以下設置裝備擺設:
<!-- log4j2.x start --> <listener> <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> </listener> <filter> <filter-name>log4jServletFilter</filter-name> <filter-class>org.apache.logging.log4j.web.Log4jServletFilter</filter-class> </filter> <filter-mapping> <filter-name>log4jServletFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- log4j2.x end -->
總結
以上就是在在Java下應用log4j記載日記的辦法,願望這篇文章的內容對年夜家的進修或許任務能帶來必定的贊助,假如有疑問年夜家可以留言交換。感謝年夜家對的支撐。