從零開始學 Java - log4j 項目中的詳細配置


你還會用筆來寫字么

我是不怎么會了,有時候老是拿起筆之后不知道這個字怎么寫,這時候就會拿起手機去打出來;有時候還會寫出來這個字之后越看越不像,這時候就開始懷疑自己的能力了;有時候寫出來了一大堆字之后,等一段時間回過頭來看,這時候會去質疑這些字是不是自己寫的。

我在每一年的七月總是會拿起筆去寫一篇日志,來使自己對過去的一年產生一些儀式感。那問題來了:在程序的世界里,寫日志的意義是什么?

日志存在的意義

毫無疑問,日志的意義就是為了記錄。記錄下程序執行的過程、調試信息、錯誤信息以及我們想要輸出的信息,這可能就是一個最簡單且完整的日志系統了,正常來說,我們的項目中一般並不會有一個強大的監控系統以及日志系統,最多是寫一個log文件,然后打印出錯誤信息,其實,對於一個對監控要求不是很高,沒有太多開發時間的互聯網項目,這個簡單的 log 文件就夠了,完全可以滿足我們的需要。

Java 項目中大家一般都喜歡使用 log4j 來記錄日志。

Log4j 是 Apache 的一個開源項目,通過使用Log4j ,我們可以控制日志信息輸送的目的地是控制台、文件、 GUI 組件,甚至是套接口服務器、NT 的事件記錄器、 UNIX Syslog 守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。

特別簡單的配置

一、在 CLASSPATH 下建立 log4j.properties文件,其實就是/src/目錄下。

# Priorities are: DEBUG, INFO, WARN, ERROR, or FATAL.
log4j.rootCategory=INFO, CONSOLE, FILE
logs.dir=${catalina.base}/logs/springdemo/
logs.filename=logs
fileBufferSize=20480

#log to File
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=${logs.dir}/${logs.filename}
log4j.appender.FILE.encoding=UTF-8
log4j.appender.FILE.Append=true
log4j.appender.FILE.LocationInfo=true
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd'.log'
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%-5p] %d(%r) --> %l: %m %x %n
log4j.appender.FILE.bufferSize=${fileBufferSize}

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=DEBUG
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n

就這么簡單。你先不要管這些是什么意義,下面會講的。怎么使用呢?

二、使用

log4j.jpg

就這么簡單。
這里的配置意思是:打印 Info 級別的日志信息,調試運行會輸出在控制台並寫入文件。文件地址為 Tomcat 目錄的 logs/springdemo 文件夾下的 logs 文件中,並且會每天產生一個日志文件。如果你理解這些就大概知道怎么配置了,這里會涉及到日志級別、輸出位置、日志格式、文件地址等等各種配置,自定義起來特別方便,不過你就要理解它各個屬性的含義了。我這里推薦博客園園友牛奶、不加糖的一篇講配置的文章,寫的特別詳細,大家可以去仔細看並配置自己想要的效果。地址:http://www.cnblogs.com/ITtangtang/p/3926665.html

下一篇從零開始學 Java - Spring MVC 統一異常處理就來講講怎么使用log4j對異常處理過的信息記錄下來,文章的具體的案例,都可以訪問我的 Github 看到 https://github.com/mafly/SpringDemo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM