slf4j 和 log4基础入门(Maven配置)
2019獨角獸企業重金招聘Python工程師標準>>>
? ? 我們將從四個問題出發。
? ? 第一,log4j是什么?
? ? log4j是一個日志系統,是Apache的一個開放源代碼項目。當然Java日志系統比較豐富,其他常用的日志系統還有java.util.logging、JUL、logback等等。
? ? 第二,slf4j又是什么?
? ? slf4j(Simple logging facade for Java),即簡單日志門面。它不同于上面所說的各種日志系統,不是真正的日志實現,不是具體的日志解決方案。而是一個抽象層,它允許你在后臺使用任意一個日志系統(例如log4j)。即slf4j是一個具體日志系統的封裝,對外提供統一的API,但其本身并不提供日志實現。
? ? 第三,既然已經有各種日志系統了,為什么還要使用slf4j?
? ? 問題就是現在有了各種日志系統,因此每個類庫使用的日志系統都可能不一樣。但lf4j允許你在后臺使用任意一個日志系統(例如log4j),即使得你的程序獨立于任意特定的日志系統。例如,你的一個項目已經使用了log4j,而你加載了一個類庫,比方說 Apache Active MQ——它依賴于另外一個日志類庫logback,那么你就需要把它也加載進去。但如果Apache Active MQ使用了slf4j,你就可以繼續使用你的日志系統而無需加載和維護一個新的日志框架。
? ? 第四,果真如此好用,那怎么使用?
? ? 首先,準備相應的包。
? ? 1.slf4j-api-x.x.x.jar 它提供對外一致的API接口,其本身不提供日志實現。
? ? 2.這里選擇log4j作為我們的日志實現,則需要下載?log4j-x.x.x.jar。
? ? 3.如果想把slf4j綁定log4j,則需要下載slf4j對log4j的相應”驅動”?slf4j-log4j12-x.x.x.jar。
????這樣就可以使用slf4j提供的API,用log4j實現打印日志了。具體在Maven porn.xml 文件中添加的dependency如下:
? ? 然后,添加配置文件。log4j支持兩種配置文件格式,一種是XML格式的文件,一種是properties格式的文件。我們這里采用properties格式的方法。
在項目中添加log4j.properties文件,如下圖:
具體配置如下:
# config root logger # [level] 是日志輸出級別 log4j.rootLogger = INFO,system.out # Appender 為日志輸出目的地 log4j.appender.system.out=org.apache.log4j.ConsoleAppender log4j.appender.system.out.layout=org.apache.log4j.PatternLayout log4j.appender.system.out.layout.ConversionPattern=Server Logger --> %5p{%F:%L} = %m%n# config this Project.file logger log4j.logger.thisProject.file=INFO,thisProject.file.out # 每天產生一個日志文件 log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender log4j.appender.thisProject.file.out.File=logContentFile.log log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout? ? 最后,在代碼中使用日志系統。示例代碼如下:
import org.apache.log4j.PropertyConfigurator; import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class App {// 通過指定的名字獲得日志對象public static final Logger log = LoggerFactory.getLogger(App.class);public static void main(String[] args) {// 通過資源類對log4j.properties文件進行加載PropertyConfigurator.configure("D:\\Workspace\\man\\src\\log4j.properties");log.info("Hello,World!");} }使用效果:
至此成功打印輸出了日志。
? ? 通過此篇文章,我們簡單了解slf4j和log4j的背景。在此基礎通過一個簡單的例子,實現了slf4j和log4j的配置使用。其中省略了很多細節,待下次深入研究后再另起一篇博文詳細介紹吧。
轉載于:https://my.oschina.net/greatqing/blog/710836
總結
以上是生活随笔為你收集整理的slf4j 和 log4基础入门(Maven配置)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 定时任务:Java中Timer和Time
- 下一篇: 几何画板有没有计算器