log4j的使用 与 父接口 slf4j 门面模式(外观模式)
log4j的使用
添加日志記錄的目的在于:
【1】監視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統計分析工作
【2】跟蹤代碼運行時軌跡,作為日后審計的依據
【3】擔當集成開發環境中的調試器的作用,向文件或控制臺打印代碼的調試信息
Log4j 是 Apache 的一個開放源代碼項目,通過使用 Log4j ,我們可以控制日志信息輸送的目的地是控制臺、文件、 GUI 組件、甚至是套接口服務器、 NT 的事件記錄器、 UNIX Syslog 守護進程等
另外還有一個log4j2的日志框架
log4j一般都是采用log4j.properties來配置的(鍵值對),也可以用xml配置
log4j是apache實現的一個開源日志組件。(Wrapped implementations)
logback同樣是由log4j的作者設計完成的,擁有更好的特性,用來取代log4j的一個日志框架。是slf4j的原生實現。(Native implementations)
1、slf4j提供各種抽象接口,日志應該基于slf4j的API進行日志打印,這樣無論遷移到那個項目,只需要配一個實現類log4j or logback,都能正常打印日志
2、slf4j的實現類不能有多個,不然沖突
3、如果項目中有直接引用log4j的,可以加入log4j-over-slf4j,把舊的日志log4j適配到slf4j,這時候,再使用logback就可以了。
不可直接使用日志系統(log4j,logback)中的api,而應依賴使用日志框架slf4j中的api,使用門面模式的日志框架,有利于維護和各個類的日志處理方式統一。
Logger 變量為啥使用 static 和 final 修飾
最重要的就是性能好。這就是static和final的好處咯。
private Logger log = LoggerFactory.getLogger(this.getClass());
--
private static final Logger log = LoggerFactory.getLogger(this.getClass());
log.error("識別結果為空 ");
----
aop日志中也是采用這個
private Logger logger = LoggerFactory.getLogger(ArchivesLogAspect.class);
?
就像前面介紹的幾種日志框架一樣,每一種日志框架都有自己單獨的API,要使用對應的框架就要使用其對應的API,這就大大的增加應用程序代碼對于日志框架的耦合性。
為了解決這個問題,就是在日志框架和應用程序之間架設一個溝通的橋梁,對于應用程序來說,無論底層的日志框架如何變,都不需要有任何感知。只要門面服務做的足夠好,隨意換另外一個日志框架,應用程序不需要修改任意一行代碼,就可以直接上線。
錯誤的
private final Logger logger = Logger.getLogger(getClass());
public Logger log=Logger.getLogger(SaveCrmsInfo.class);
private final Logger logger = Logger.getLogger(getClass());
轉載于:https://www.cnblogs.com/smallwangmusk/p/11333700.html
總結
以上是生活随笔為你收集整理的log4j的使用 与 父接口 slf4j 门面模式(外观模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [ Linux ] 釋放記憶體指令(ca
- 下一篇: 切客软件诞生,给切客全新的购物消费体验