激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 如何將應用的log4j替換成logback詳解

如何將應用的log4j替換成logback詳解

2020-08-19 11:34周立 Java教程

無論從設計上還是實現上,Logback相對log4j而言有了相對多的改進。所以下面這篇文章主要給大家介紹了關于如何將應用的log4j換成logback的相關資料,文中介紹的很詳細,需要的朋友可以參考下。

前言

最近考慮到log4j很久不更新、性能相對弱,以及一些項目本身的原因,經過較為謹慎的考慮,決定改用logback。如果你已經對log4j很熟悉,你也可以很快上手logback。如果你喜歡使用log4j,你也許會迷上使用logback。遷移還是比較順利的,花了1個小時左右就搞定了,做個簡單的筆記。

方法如下

(1) 首先去掉所有log4j相關的依賴,主要有:

?
1
2
3
4
<dependency>
 <groupId>log4j</groupId>
 <artifactId>log4j</artifactId>
</dependency>

以及:

?
1
2
3
4
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-log4j12</artifactId>
</dependency>

(2) 為項目添加以下依賴:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- logback日志配置開始 -->
<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-core</artifactId>
</dependency>
<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-access</artifactId>
</dependency>
<dependency>
 <groupId>ch.qos.logback</groupId>
 <artifactId>logback-classic</artifactId>
</dependency>
<dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>log4j-over-slf4j</artifactId>
</dependency>
<!-- logback日志配置結束 -->

(3) 刪除項目/src/main/resources目錄下的log4j.properties,并在該目錄添加logback.xml文件,logback.xml文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
 <Target>System.out</Target>
 <encoder>
 <pattern>%date [%level] [%thread] %logger{80} [%file : %line] %msg%n</pattern>
 </encoder>
 </appender>
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 <encoder>
 <pattern>%date [%level] [%thread] %logger{80} [%file : %line] %msg%n</pattern>
 </encoder>
 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 <fileNamePattern>${catalina.home}/logs/yzf/sql%d{yyyy-MM-dd}.log</fileNamePattern>
 <!-- 保留 30天數據,默認無限-->
 <MaxHistory>30</MaxHistory>
 </rollingPolicy>
 </appender>
 <logger name="org.springframework" level="INFO" />
 <logger name="org.apache" level="INFO" />
 <logger name="com.itmuch" level="WARN" />
 <root level="INFO">
 <appender-ref ref="CONSOLE" />
 <appender-ref ref="FILE" />
 </root>
</configuration>

拓展

slf4j-api、slf4j-log4j12以及log4j之間什么關系?

幾乎在每個jar包里都可以看到log4j的身影,在多個子工程構成項目中,slf4j相關的沖突時不時就跳出來讓你不爽,那么slf4j-api、slf4j-log4j12還有log4j他們是什么關系?我把自己了解的和大家簡單分享一下:

slf4j:Simple Logging Facade for Java,為java提供的簡單日志Facade。Facade:門面,更底層一點說就是接口。他允許用戶以自己的喜好,在工程中通過slf4j接入不同的日志系統。更直觀一點,slf4j是個數據線,一端嵌入程序,另一端鏈接日志系統,從而實現將程序中的信息導入到日志系統并記錄。 

因此,slf4j入口就是眾多接口的集合,他不負責具體的日志實現,只在編譯時負責尋找合適的日志系統進行綁定。具體有哪些接口,全部都定義在slf4j-api中。查看slf4j-api源碼就可以發現,里面除了public final class LoggerFactory類之外,都是接口定義。因此,slf4j-api本質就是一個接口定義。

下圖比較清晰的描述了他們之間的關系:

如何將應用的log4j替換成logback詳解

當系統采用log4j作為日志框架實現的調用關系:

首先系統包含slf4j-api作為日志接入的接口;

at compile時slf4j-api中public final class LoggerFactor類中

private final static void bind() 方法會尋找具體的日志實現類綁定,主要通過

StaticLoggerBinder.getSingleton();語句調用

slf4j-log4j12:鏈接slf4j-api和log4j中間的適配器。它實現了slf4j-apiz中StaticLoggerBinder接口,從而使得在編譯時綁定的是slf4j-log4j12的getSingleton()方法

log4j:這個是具體的日志系統。通過slf4j-log4j12初始化Log4j,達到最終日志的輸出。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品小短片 | 成人9禁啪啪无遮挡免费 | 欧美一级淫片免费视频1 | 日韩av在线资源 | 黄视频网站免费在线观看 | 免费在线观看国产精品 | 亚洲网站免费看 | 视频一区二区视频 | 国产91亚洲精品一区二区三区 | 99视频在线观看视频 | 国产精品一区自拍 | 99久久久| 多男操一女视频 | 成人毛片免费视频 | 黄视频在线网站 | 成年人在线视频免费 | 性色av免费在线观看 | 一本到免费视频 | 久草干 | 免费观看一区二区三区视频 | 中文字幕亚洲情99在线 | 国产免费www | 精品国产99久久久久久宅男i | 羞羞视频免费网站入口 | 亚洲午夜久久久精品一区二区三区 | 在线影院av | 国产亚洲精品久久久久婷婷瑜伽 | 18欧美性xxxx极品hd | 嗯~啊~弄嗯~啊h高潮视频 | 日日久视频 | 一级做a爱视频 | 男女无遮挡羞羞视频 | 爱操视频 | 日本在线视 | 澳门一级淫片免费视频 | 精品一区二区三区在线观看视频 | 亚洲精品无码不卡在线播放he | 色播视频在线播放 | 久久精品在这里 | 巨根插入 | 男女羞羞视频 |