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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

log4j2 入门

發布時間:2024/4/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4j2 入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

log4j2的使用

Apache Log4j 2是對Log4j的升級版,參考了logback的一些優秀的設計,并且修復了一些問題,因此帶來了一些重大的提升,主要有:

異常處理,在logback中,Appender中的異常不會被應用感知到,但是在log4j2中,提供了一些異常處理機制。

性能提升, log4j2相較于log4j 和logback都具有很明顯的性能提升,后面會有官方測試的數

自動重載配置,參考了logback的設計,當然會提供自動刷新參數配置,最實用的就是我們在生產上可以動態的修改日志的級別而不需要重啟應用。

無垃圾機制,log4j2在大部分情況下,都可以使用其設計的一套無垃圾機制,避免頻繁的日志收集導致的jvm gc。

官網: https://logging.apache.org/log4j/2.x/

Log4j2入門

目前市面上最主流的日志門面就是SLF4J,雖然Log4j2也是日志門面,因為它的日志實現功能非常強大,性能優越。所以大家一般還是將Log4j2看作是日志的實現,Slf4j + Log4j2應該是未來的大勢所趨。

1. 添加依賴

<!-- Log4j2 門面API--> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.11.1</version> </dependency> <!-- Log4j2 日志實現 --> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.11.1</version> </dependency>

2. JAVA代碼

package com.leon;import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test;public class Log4j2Test {// 定義日志記錄器對象public static final Logger LOGGER = LogManager.getLogger(Log4j2Test.class);// 快速入門@Testpublic void testQuick()throws Exception{// 日志消息輸出LOGGER.fatal("fatal");LOGGER.error("error");LOGGER.warn("warn");LOGGER.info("inf");LOGGER.debug("debug");LOGGER.trace("trace");} }

Log4j2配置

log4j2默認加載classpath下的 log4j2.xml 文件中的配置。

<?xml version="1.0" encoding="UTF-8"?> <!--status="warn" 日志框架本身的輸出日志級別monitorInterval="5" 自動加載配置文件的間隔時間,不低于 5 秒 --> <Configuration status="debug" monitorInterval="5"><!--集中配置屬性進行管理使用時通過:${name}--><properties><property name="LOG_HOME">/logs</property></properties><!--日志處理--><Appenders><!--控制臺輸出 appender--><Console name="Console" target="SYSTEM_ERR"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] [%-5level] %c{36}:%L --- %m%n" /></Console><!--日志文件輸出 appender--><File name="file" fileName="${LOG_HOME}/myfile.log"><PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %c{36} - %m%n" /></File><!--<Async name="Async">--><!--<AppenderRef ref="file"/>--><!--</Async>--><!--使用隨機讀寫劉的日志文件輸出 appender,性能提高--><RandomAccessFile name="accessFile" fileName="${LOG_HOME}/myAcclog.log"><PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %c{36} - %m%n" /></RandomAccessFile><!--按照一定規則拆分的日志文件的 appender--><RollingFile name="rollingFile" fileName="${LOG_HOME}/myrollog.log"filePattern="/logs/$${date:yyyy-MM-dd}/myrollog-%d{yyyy-MM-dd-HH-mm}-%i.log"><!--日志級別過濾器--><ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /><!--日志消息格式--><PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %l %c{36} - %msg%n" /><Policies><!--在系統啟動時,出發拆分規則,生產一個新的日志文件--><OnStartupTriggeringPolicy /><!--按照文件大小拆分,10MB --><SizeBasedTriggeringPolicy size="10 MB" /><!--按照時間節點拆分,規則根據filePattern定義的--><TimeBasedTriggeringPolicy /></Policies><!--在同一個目錄下,文件的個數限定為 30 個,超過進行覆蓋--><DefaultRolloverStrategy max="30" /></RollingFile></Appenders><!--logger 定義--><Loggers><!--自定義異步 logger 對象includeLocation="false" 關閉日志記錄的行號信息additivity="false" 不在繼承 rootlogger 對象--><AsyncLogger name="com.leon" level="trace" includeLocation="false" additivity="false"><AppenderRef ref="Console"/></AsyncLogger><!--使用 rootLogger 配置 日志級別 level="trace"--><Root level="trace"><!--指定日志使用的處理器--><AppenderRef ref="Console" /><!--使用異步 appender--><AppenderRef ref="Async" /></Root></Loggers> </Configuration>

使用slf4j作為日志的門面,使用log4j2作為日志的實現

<!-- Log4j2 門面API--> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.11.1</version> </dependency> <!-- Log4j2 日志實現 --> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.11.1</version> </dependency> <!--使用slf4j作為日志的門面,使用log4j2來記錄日志 --> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version> </dependency> <!--為slf4j綁定日志實現 log4j2的適配器 --> <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.10.0</version> </dependency> package com.leon;import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class Slf4jTest {public static final Logger LOGGER = LoggerFactory.getLogger(Slf4jTest.class);// 快速入門@Testpublic void test01()throws Exception{// 日志輸出LOGGER.error("error");LOGGER.warn("wring");LOGGER.info("info");LOGGER.debug("debug");LOGGER.trace("trace");} }

?

總結

以上是生活随笔為你收集整理的log4j2 入门的全部內容,希望文章能夠幫你解決所遇到的問題。

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