Log4J的配置
Log4J簡介
日志記錄功能是一個項目中重要的組成部分,Log4J是APache下的一個開源日志組件,為java開發者提供了很大的便利。
Loggers,日志信息的優先級
日志信息的優先級從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日志信息的重要程度,設置為高級別的優先級時,低優先級的日志將不會輸出,比如將日志級別設置為INFO,則DEBUG級別的目錄不會被記錄,為了防止日志輸出泛濫,最好不要將日志級別設置太低,一般為INFO即可。
Appenders,日志信息的輸出目的地
日志信息的輸出目的地指定了日志將打印到控制臺還是文件中,參數如下:
org.apache.log4j.ConsoleAppender (控制臺)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件,本文中的案例選擇的策略)
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件,也是一個不錯的選擇)
org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
Layouts,日志信息的輸出格式
輸出格式的功能是控制日志信息的顯示內容,參數如下:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以靈活地指定布局模式,本案例所選擇的策略,需對日志格式進行設置)
org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串)
org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)
Log4J的輸出格式 :
layout中的參數都以%開始,后面不同的參數代表不同的格式化信息(參數按字母表順序列出):?
%c 輸出所屬類的全名,可在修改為 %d{Num} ,Num類名輸出的維(如:"org.apache.elathen.ClassName",%C{2}將輸出elathen.ClassName)?
%d 輸出日志時間其格式為 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}?
%l 輸出日志事件發生位置,包括類目名、發生線程,在代碼中的行數?
%n 換行符?
%m 輸出代碼指定信息,如info(“message”),輸出message?
%p 輸出優先級,即 FATAL ,ERROR 等?
%r 輸出從啟動到顯示該log信息所耗費的毫秒數?
%t 輸出產生該日志事件的線
?Log4J配置文件 : ??
# 配置根Logger
# level是指 日志的輸出級別 ,優先級從高到低分別是 ERROR 、 WARN 、 INFO 、 DEBUG 。
# appenderName 就是指日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。
log4j.rootLogger = [ level ] , appenderName, appenderName, … # 定義日志輸出目的地
# appenderName就是指日志輸出的目的地,和log4j.rootLogger中的相同。
log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender# org.apache.log4j.ConsoleAppender (控制臺)
# org.apache.log4j.FileAppender (文件)
# org.apache.log4j.DailyRollingFileAppender (每天產生一個日志文件)
# org.apache.log4j.RollingFileAppender (文件大小到達指定尺寸的時候產生一個新的文件)
# org.apache.log4j.WriterAppender (將日志信息以流格式發送到任意指定的地方)# 設置文件輸出路徑 mylog為日志文件的文件名,路徑為根目錄下的logs文件夾下的mylog.log文件
log4j.appender.appenderName.file=../logs/mylog.log# 當天的日志是mylog.log,當天過去之后,mylog.log就會重命名為mylog_yyyy-MM-dd.log ,yyyy-MM-dd為當天的日期
log4j.appender.appenderName.DatePattern='_'yyyy-MM-dd'.log'# 配置日志信息的格式(布局)
log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout # org.apache.log4j.HTMLLayout (以 HTML 表格形式布局)
# org.apache.log4j.PatternLayout (可以靈活地指定布局模式)
# org.apache.log4j.SimpleLayout (包含日志信息的級別和信息字符串)
# org.apache.log4j.TTCCLayout (包含日志產生的時間、線程、類別等等信息)# 日志信息輸出格式
# [日期] 日志級別 全路徑類名 行號 日志信息
log4j.appender.appenderName.layout.ConversionPattern= [%d{yyyy-MM-dd HH\:mm\:ss}] %-5p %c %L -%m%n# layout中的參數都以%開始,后面不同的參數代表不同的格式化信息(參數按字母表順序列出):# - X 號 : X 信息輸出時左對齊;
# %p: 輸出日志信息優先級,即 DEBUG , INFO , WARN , ERROR , FATAL,
# %d: 輸出日志時間點的日期或時間,默認格式為 ISO8601 ,也可以在其后指定格式,比如: %d{yyy MMM dd HH:mm:ss,SSS}
# %r: 輸出自應用啟動到輸出該 log 信息耗費的毫秒數
# %c: 輸出日志信息所屬的類目,通常就是所在類的全名
# %t: 輸出產生該日志事件的線程名
# %l: 輸出日志事件的發生位置,相當于 %C.%M(%F:%L) 的組合 , 包括類目名、發生的線程,以及在代碼中的行數。舉例: Testlog4.main(TestLog4.java:10)
# %x: 輸出和當前線程相關聯的 NDC( 嵌套診斷環境 ), 尤其用到像 Java servlets 這樣的多客戶多線程的應用中。
# %%: 輸出一個 "%" 字符
# %F: 輸出日志消息產生時所在的文件名稱
# %L: 輸出代碼中的行號
# %m: 輸出代碼中指定的消息 , 產生的日志具體信息
# %n: 輸出一個回車換行符, Windows 平臺為 "/r/n" , Unix 平臺為 "/n" 輸出日志信息換行 # 設置日志字符集編碼格式
log4j.appender.appenderName.encoding=utf-8# 設置日志的輸出級別,和log4j.rootLogger里面的相比 取級別高的。
log4j.appender.appenderName.Threshold = ERROR# 設置日志文件最大尺寸
log4j.appender.ROLLING_FILE.MaxFileSize=10MB
#ex:
log4j.rootLogger = ERROR , appenderName , Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout = org.apache.log4j.PatternLayout?
log4j.appender.Console.layout.ConversionPattern= [%d{yyyy-MM-dd HH\:mm\:ss}] %-5p %c %L -%m%n
log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender
log4j.appender.appenderName.file=../logs/mylog.log
log4j.appender.appenderName.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.appenderName.layout = org.apache.log4j.PatternLayout?
log4j.appender.appenderName.layout.ConversionPattern= [%d{yyyy-MM-dd HH\:mm\:ss}] %-5p %c %L -%m%n
log4j.appender.appenderName.encoding=utf-8?
log4j.appender.appenderName.Threshold = ERROR?
log4j.appender.ROLLING_FILE.MaxFileSize=10MB
java 中的應用
private static Logger logger = Logger.getLogger(this.getClass().getName);Logger.debug(Object message); // 調試信息 Logger.info(Object message); // 一般信息 Logger.warn(Object message); // 警告信息 Logger.error(Object message); // 錯誤信息
?
轉載于:https://www.cnblogs.com/zhaohongtian/p/6807395.html
總結
- 上一篇: wamp环境下安装imagick扩展
- 下一篇: 求一个贴吧个性签名。