日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

logging总结 - log4j2使用流程[归档存储]

發布時間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 logging总结 - log4j2使用流程[归档存储] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

  • 第一步:添加log4j-api、log4j-core的支持
<log4j2.version>2.7</log4j2.version> <!-- configure logging --> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version> </dependency> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version> </dependency> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version> </dependency>
  • 第二步:在resources目錄下添加log4j2.xml,打包后,會自動復制到classpath下
<?xml version="1.0" encoding="UTF-8"?> <!--status : 這個用于設置log4j2自身內部的信息輸出,可以不設置,當設置成trace時,會看到log4j2內部各種詳細輸出 monitorInterval : Log4j能夠自動檢測修改配置文件和重新配置本身, 設置間隔秒數。 --> <configuration status="WARN" monitorInterval="600"><properties><!-- 配置日志文件輸出目錄 --><property name="LOG_HOME">D:/logs</property><property name="APPLICATION_FILE_NAME">application</property><property name="ERROR_FILE_NAME">error</property></properties><Appenders><!-- 配置日志文件輸出目錄 --><Console name="Console" target="SYSTEM_OUT"><!-- 控制臺只輸出level及以上級別的信息(onMatch),其他的直接拒絕(onMismatch) --><ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/><!-- 輸出日志的格式 --><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n"/></Console><!--fileName 指定當前日志文件的位置和文件名稱 filePattern 指定當發生Rolling時,文件的轉移和重命名規則--><RollingRandomAccessFile name="APPLICATION-APPENDER"fileName="${LOG_HOME}/${APPLICATION_FILE_NAME}.log"filePattern="${LOG_HOME}/${APPLICATION_FILE_NAME}.%d{yyyy-MM-dd}-%i.log"><PatternLayout charset="UTF-8"pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n"/><Policies><!--和filePattern結合使用,注意filePattern中配置的文件重命名規則是${FILE_NAME}-%d{yyyy-MM-ddHH-mm}-%i,最小的時間粒度是mm,即分鐘,TimeBasedTriggeringPolicy指定的size是1,結合起來就是每1分鐘生成一個新文件。如果改成%d{yyyy-MM-ddHH},最小粒度為小時,則每一個小時生成一個文件。modulate:Indicates whether the interval should be adjusted to cause the next rollover tooccur on the interval boundary.--><TimeBasedTriggeringPolicy interval="1" /><!--指定當文件體積大于size指定的值時,觸發Rolling--><SizeBasedTriggeringPolicy size="200 MB"/></Policies><!--指定最多保存的文件數 (指-%i 一個間隔最多文件數)--><!--<DefaultRolloverStrategy max="20"/>--></RollingRandomAccessFile><!--fileName 指定當前日志文件的位置和文件名稱 filePattern 指定當發生Rolling時,文件的轉移和重命名規則--><RollingRandomAccessFile name="ERROR-APPENDER"fileName="${LOG_HOME}/${ERROR_FILE_NAME}.log"filePattern="${LOG_HOME}/${ERROR_FILE_NAME}.%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout charset="UTF-8"pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n"/><Policies><!--和filePattern結合使用,注意filePattern中配置的文件重命名規則是${FILE_NAME}-%d{yyyy-MM-ddHH-mm}-%i,最小的時間粒度是mm,即分鐘,TimeBasedTriggeringPolicy指定的size是1,結合起來就是每1分鐘生成一個新文件。如果改成%d{yyyy-MM-ddHH},最小粒度為小時,則每一個小時生成一個文件。modulate:Indicates whether the interval should be adjusted to cause the next rollover tooccur on the interval boundary.--><TimeBasedTriggeringPolicy interval="1" /><!--指定當文件體積大于size指定的值時,觸發Rolling--><SizeBasedTriggeringPolicy size="200 MB"/></Policies><!--指定最多保存的文件數 (指-%i 一個間隔最多文件數)--><!--<DefaultRolloverStrategy max="20"/>--></RollingRandomAccessFile></Appenders><Loggers><!--additivity="false"表示在該logger中輸出的日志不會再延伸到父層logger additivity="false"表示在該logger中輸出的日志不會再延伸到父層logger日志級別從低到高分為TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果設置為WARN,則低于WARN的信息都不會輸出。--><!-- 系統全日志 --><Logger name="com.zhaogang" level="DEBUG" additivity="true"><AppenderRef ref="APPLICATION-APPENDER"/><AppenderRef ref="ERROR-APPENDER"/></Logger><Root level="DEBUG"><AppenderRef ref="Console"/></Root></Loggers> </configuration>
  • 第三步:使用
private static Logger logger = LogManager.getLogger("當前類名即可");logger.info("trace-debug-info-warn-error-fatal");

?

?

注意:

<web-app> 2.5 以前要多個依賴 log4j-web,還需要在web.xml配置listener、filter

?Log4j2 不支持 Servlet 2.5以前的WEB應用。

(Servlet 2.5 意思是 web.xml 文件中的 <web-app> ?的 version屬性值是 2.5 。)

解決方案:升級web-app至3.0 ?

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

?

spring默認使用commons logging打日志,會被activiti的橋接工具把日志輸入重定向到slf4j

<!-- 橋接:告訴Slf4j使用Log4j2 --> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version> </dependency>

?

?

總結:

1.添加log4j-api、log4j-core的支持

2.在resources目錄下添加log4j2.xml,打包后,會自動復制到classpath下

3.private static Logger logger = LogManager.getLogger("exception");

??logger.info("trace-debug-info-warn-error-fatal");

?

Log4j 2 包含了基于LMAX 分離庫的下一代的異步日志系統,在多線程環境下,異步日志系統比 Log4j 1.x 和Logback 提高了10倍性能提升(吞吐量和延遲率 )

?

目前的日志框架有jdk自帶的logging,log4j1、log4j2、logback

目前用于實現日志統一的框架apache的commons-loggingslf4j

?

SLF4J(Simple Logging Facade for Java簡單日志門面):

不是具體的日志解決方案,它只服務于各種各樣的日志系統。按照官方的說法,SLF4J是一個用于日志系統的簡單Facade,允許最終用戶在

?

部署其應用時使用其所希望的日志系統。 提供的核心API是一些接口以及一個LoggerFactory的工廠類。

?

log4j(log for java):

Apache的一個開源項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。

?

Logback:

由log4j創始人設計的又一個開源日志組件。當前分成三個模塊:

①logback-core(基礎模塊),

②logback- classic(log4j的一個 改良版本)

③logback-access(logback-classic完整實現SLF4J API使你可以很方便地更換成其它日志系統如log4j或JDK14 Logging。logback-access訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能。)

?

log4j2:

與log4j1發生了很大的變化,不兼容。log4j1僅僅作為一個實際的日志框架,slf4j、commons-logging作為門面,統一各種日志框架的混亂格局,現在log4j2也想跳出來充當門面了,也想統一大家了。哎,日志格局越來越混亂了。

?

?

log4j-api: 作為日志接口層,用于統一底層日志系統

log4j-core : 作為上述日志接口的實現,是一個實際的日志框架

slf4j、jcl、jul、log4j1、log4j2、logback大總結

?

轉載于:https://my.oschina.net/wuweixiang/blog/828538

總結

以上是生活随笔為你收集整理的logging总结 - log4j2使用流程[归档存储]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。