Log4j的定義
Log4j是Apache的一個開源項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼
System.Out.PrintIn的定義
輸出字符串。System是java.lang里面的一個類
,而out就是System里面的一個數據成員(也稱為字段),但這個成員不是基本類,而是java.io.PrintStream類的對象,我們先看看下面的截圖,被關鍵字static修飾的數據成員或方法可以直接通過“類名.數據成員”或“類名.方法”來引用,而無須先建立對象。所以System.out是應用了out這個靜態數據成員。而out又是一個java.io.PrintStream類的對象,所以out必然可以調用java.io.PrintStream類里面的方法,println()就是java.io.PrintStream類里的一個方法,它的作用就是用來想控制臺輸出信息的。
代碼實例比較
System.Out.PrintIn
不知道這句話是在哪個類,哪個線程里出來的
不知道什么時候前后兩句輸出間隔了多少時間
無法關閉調試信息,一旦System.out.println多了之后,到處都是輸出,增加定位自己需要信息的難度?等等
光禿禿的輸出信息
Log4j
知道是哪個類的日志
知道是哪個線程的日志
日志級別可以觀察TRACE DEBUG INFO WARN ERROR FATAL
知道時間間隔
Log4j配置
log4j.properties
設置輸出格式
設置輸出文件
log4j.rootLogger=DEBUG,Console,Stdout//輸出地方,控制臺,輸出信息登記DEBUG
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n//輸出格式
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.appender.Stdout = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Stdout.File = C://logs/log.log //輸出文件存儲路徑
log4j.appender.Stdout.Append = true
log4j.appender.Stdout.Threshold = DEBUG
log4j.appender.Stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}? [ %t:%r ] - [ %p ]? %m%n
格式解釋
log4j日志輸出格式一覽:
%c 輸出日志信息所屬的類的全名
%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28
%f 輸出日志信息所屬的類的類名
%l 輸出日志事件的發生位置,即輸出日志信息的語句處于它所在的類的第幾行
%m 輸出代碼中指定的信息,如log(message)中的message
%n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”
%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推
%r 輸出自應用啟動到輸出該日志信息所耗費的毫秒數
%t 輸出產生該日志事件的線程名
所以:
%5p [%t] (%F:%L) - %m%n 就表示
寬度是5的優先等級 線程名稱 (文件名:行號) - 信息 回車換行
PPT:PPT
------------------------------------------------------------------------------------------------------------------------
“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧 !http://www.jnshu.com/login/1/11605661