java項目日誌系統的總結
阿新 • • 發佈:2018-12-16
不同的 常用 分享圖片 ole sql test static 自己 sta
目錄
- 日誌系統歸類以及關系
- 日誌的三個組件
- slf4j的使用
- 項目中構建日誌系統
- 使用例子
日誌系統歸類以及關系
常用的日誌框架: slf4j、logback 、log4j、log4j2、JUL(java util logging)、jboss-logging、JCL(jakarta common logging)
log4j: 最開始的一個日誌系統。
JUL: jdk自帶的日誌系統
jboss-logging: jboss公司的日誌系統
JCL: apache 開源的日誌框架
slf4j: 基於門面模式的一個對日誌框架進行抽象的接口(類似於JDBC驅動)
logback: 是基於slf4j接口進行實現的一個具體的日誌系統
log4j2: 同樣是基於slf4j接口實現的一個具體日誌系統,該系統使用了disruptor庫,在異步的情況下,性能提高很多
日誌的三個組件
Logger
一個日誌系統可以有多個Logger,可以根據自己的情況配置,一個logger可以有多個appender
Appender
代表的是日誌的輸出目的地。可以輸出到Console, File, JDBC, JMS ,Kafka ,NOSQL, Socket等。 它可以分為異步Appender 和非異步Appender
Layout
Layout:作用為控制輸出流的格式。可以為Parttern格式,JSON格式,HTML格式,CSV格式,XML格式等。
<PatternLayout >
<Charset>UTF-8</Charset>
<!-- 時間 類型 線程 文件位置 具體的日誌消息 換行-->
<Pattern>%d %p %c{1.} [%t] %F %m %n</Pattern>
</PatternLayout>
slf4j的使用
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class LoggerTest { private static final Logger LOG = LoggerFactory.getLogger(LoggerTest.class); public void test() { //日誌級別從低到高: //trace < debug < info < warn < error LOG.trace(" trace log"); LOG.debug(" debug log"); LOG.info(" info log"); LOG.warn(" warn log"); LOG.error(" error log"); } }
項目中構建日誌系統
使用slfj4抽象接口來編程,這樣不用關系底層的實現是什麽,只需要最後配置需要的種類即可。
註意:在構建項目的時候,通常會使用第三方的框架,但是多個第三方框架可能會使用不同的日誌系統,為了統一日誌,可以使用如下步驟.
統一日誌框架步驟:
將第三方框架中的日誌系統排除掉
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency>
用中間適配包來替換原來的日誌框架
導入我們需要的slf4j實現
使用例子
java項目日誌系統的總結