亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

log4j--新的日志操作方法

2019-11-18 13:05:23
字體:
來源:轉載
供稿:網友

  1.1預備工作
  一、Tomcat已正確配置與使用。
  二、軟件下載:log4j------http://www.apache.org/dist/jakarta/log4j/jakarta-log4j-1.2.8.zip
  
  1.2. Log4j簡介
  在強調可重用組件開發的今天,除了自己從頭到尾開發一個可重用的日志操作類外,Apache為我們提供了一個強有力的日志操作包-Log4j。
  Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。最令人感愛好的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。
  此外,通過Log4j其他語言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其語法和用法與在java程序中一樣,使得多語言分布式系統得到一個統一一致的日志組件模塊。而且,通過使用各種第三方擴展,您可以很方便地將Log4j集成到J2EE、JINI甚至是SNMP應用中。本文介紹的Log4j版本是1.2.8,怎樣通過一個配置文件來靈活地進行配置,主要的應用平臺是Tomcat4.
  
  1.3、Log4j的配置
  首先到jakarta下載一個log4j的組件。把jakarta-log4j-1.2.8/dist/lib下的log4j-1.2.8.jar文件copy到classpath指定的目錄下!可以是Tomcat的common/lib目錄下,也可以是你需要用到log4j的application下的lib目錄。
  1.4在Application目錄下的web.xml文件加入以后代碼
  <servlet>
  <servlet-name>log4j</servlet-name>
  <servlet-class>com.apache.jakarta.log4j.Log4jInit</servlet-class>
  <init-param>
  <param-name>log4j</param-name>
  <param-value>/WEB-INF/log4j.properties</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  </servlet>
  
  這段代碼的意思是說,在Tomcat啟動時加載com.apache.jakarta.log4j.Log4jInit這個名叫Log4jInit.class這個類文件。其中Log4jInit.class的源代碼如下
  
  package com.apache.jakarta.log4j;
  import org.apache.log4j.PRopertyConfigurator;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  public class Log4jInit extends HttpServlet {
  
  public void init() {
  String prefix = getServletContext().getRealPath("/");
  String file = getInitParameter("log4j");
  // if the log4j-init-file is not set, then no point in trying
  System.out.println("................log4j start");
  if(file != null) {
  PropertyConfigurator.configure(prefix+file);
  }
  }
  public void doGet(HttpServletRequest req, HttpServletResponse res) {
  }
  }
  這段代碼很簡單,可以看出,在加載的過程中,程序會讀取/WEB-INF/log4j.properties這個文件
  這個文件就是本文的重點,也就是log4j的配置文件。
  
  # Set root logger level to DEBUG and its only appender to A1
  #log4j中有五級logger
  #FATAL 0
  #ERROR 3
  #WARN 4
  #INFO 6
  #DEBUG 7
  #配置根Logger,其語法為:
  #log4j.rootLogger = [ level ] , appenderName, appenderName, …
  log4j.rootLogger=INFO, A1 ,R
  #這一句設置以為著所有的log都輸出
  #假如為log4j.rootLogger=WARN, 則意味著只有WARN,ERROR,FATAL
  #被輸出,DEBUG,INFO將被屏蔽掉.
  # A1 is set to be a ConsoleAppender.
  #log4j中Appender有幾層如控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等
  #ConsoleAppender輸出到控制臺
  log4j.appender.A1=org.apache.log4j.ConsoleAppender
  # A1 使用的輸出布局,其中log4j提供4種布局. org.apache.log4j.HtmlLayout(以HTML表格形式布局)
  #org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
  #org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
  #org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)
  
  log4j.appender.A1.layout=org.apache.log4j.PatternLayout
  #靈活定義輸出格式 具體查看log4j javadoc org.apache.log4j.PatternLayout
  #d 時間 ....
  log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
  #R 輸出到文件 RollingFileAppender的擴展,可以提供一種日志的備份功能。
  log4j.appender.R=org.apache.log4j.RollingFileAppender
  #日志文件的名稱
  log4j.appender.R.File=log4j.log
  #日志文件的大小
  log4j.appender.R.MaxFileSize=100KB
  # 保存一個備份文件
  log4j.appender.R.MaxBackupIndex=1
  
  log4j.appender.R.layout=org.apache.log4j.TTCCLayout
  #log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
  
  配置以這里就差不多了,假如你想更深入了解配置文件的各個細節,可以去查看docs。還有,在文章的最后面我們提供配置文件中一些主要的語法。下面我們來看看怎樣在程序中使用log4j.
  
  1.4 Log4j的使用
  使用Log4j,第一步就是獲取日志記錄器,這個記錄器將負責控制日志信息。其語法為:
  public static Logger getLogger( String name),
  必須在使用前要把這個類導入
  import org.apache.log4j.Logger;
  
  name一般是類文件的名字,如下:
  static Logger logger = Logger.getLogger ("".class.getName () ) ;
  
  您就可以輕松地使用不同優先級別的日志記錄語句插入到您想記錄日志的任何地方,其語法如下:
  logger.debug ( Object message ) ;
  logger.info ( Object message ) ;
  logger.warn ( Object message ) ;
  logger.error ( Object message ) ;
  
  為什么這里要分級別的呢?試想一下,我們在寫程序的時候,為了調試程序,會在很多會出錯的地方加入大量的logger.info();信息。當然程序調試完畢,我們不需要這些輸出信息了,那怎么辦呢?以前的做法是把每個程序中的logger.info刪除,但這是不現實的,假如程序不大還可以,但假如程序很多,做這些事情就很煩人了。但因為log4j分級別了,當我們不需要輸出這樣調試時用到的log.info()時,我們可以把輸出的級別調高,如調到warn,或error級別,這樣info級別及以下的級別就不會出輸出了,是不是很方便的呢?
  
  其實除了這種使用方式,log4j還有其它的使用方面,不需要配置文件,直接在程序中定義輸入出級別,層次等信息,假如要了解這方法的使用,可以參考文檔。
  
  1.5、附注:
  以下是配置文件的一些重要的語法
  定義配置文件
  
  其實您也可以完全不使用配置文件,而是在代碼中配置Log4j環境。但是,使用配置文件將使您的應用程序更加靈活。
  
  Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性文件(鍵=值)。下面我們介紹使用Java特性文件做為配置文件的方法:
  
  配置根Logger,其語法為:
  
  log4j.rootLogger = [ level ] , appenderName, appenderName, …
  其中,level 是日志記錄的優先級,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先級從高到低分別是ERROR、WARN、INFO、DEBUG。通過在這里定義的級別,您可以控制到應用程序中相應級別的日志信息的開關。比如在這里定義了INFO級別,則應用程序中所有DEBUG級別的日志信息將不被打印出來。
  appenderName就是指定日志信息輸出到哪個地方。您可以同時指定多個輸出目的地。
  
  配置日志信息輸出目的地Appender,其語法為
  
  log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1 = value1
  …
  log4j.appender.appenderName.option = valueN
  其中,Log4j提供的appender有以下幾種:
  org.apache.log4j.ConsoleAppender(控制臺),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(天天產生一個日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件),
  org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)
  //往數據庫中加入日志
  log4j.appender.R=org.apache.log4j.jdbc.JDBCAppender
  log4j.appender.R.URL=jdbc:MySQL://localhost/log
  log4j.appender.R.username=root
  log4j.appender.R.passWord=
  log4j.appender.R.sql=INSERT INTO TEST (msg) VALUE ('%d -%c -&m')
  log4j.appender.R.layout=org.apache.log4j.PatternLayout
  
  配置日志信息的格式(布局),其語法為:
  
  log4j.appender.appenderName.layout = fully.qualified

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品黄页免费高清在线观看| 日韩成人久久久| 国产一区二区成人| 日韩精品日韩在线观看| 自拍偷拍亚洲区| 国产午夜精品理论片a级探花| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产黑人绿帽在线第一区| 久久久久久中文字幕| 色噜噜狠狠色综合网图区| 亚洲一区av在线播放| 欧美日韩免费一区| 国产成人亚洲综合91精品| 亚洲视频欧美视频| 成人欧美在线观看| 久久精品国产精品| 久久男人资源视频| 欧美裸体男粗大视频在线观看| 久久99精品久久久久久琪琪| 日韩欧美在线视频| 欧美老少配视频| 久久久91精品国产一区不卡| 亚洲美女视频网站| 国产精品久久久久久久久久| 97在线精品国自产拍中文| 福利视频导航一区| 欧洲成人在线视频| 色妞久久福利网| 成人黄色av网| 久久激情视频免费观看| 日韩在线高清视频| 国产日韩综合一区二区性色av| 91精品免费看| 亚洲精品999| 91精品久久久久久久久久久久久| 91高清在线免费观看| 另类专区欧美制服同性| 亚洲国产精品高清久久久| 欧美肥臀大乳一区二区免费视频| 亚洲大胆美女视频| 亚洲免费成人av电影| 福利二区91精品bt7086| 日本精品免费一区二区三区| 成人激情综合网| 亚洲最新av在线网站| 国产精品网站视频| 久久久国产精品x99av| 欧美中文在线字幕| 欧日韩在线观看| 国产亚洲精品美女久久久| 久久国产精品99国产精| 色七七影院综合| 国产精品久久9| 国产亚洲成精品久久| 久久久久久噜噜噜久久久精品| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品劲爆视频| 久久艳片www.17c.com| 久久久久久午夜| 久久频这里精品99香蕉| 国产视频观看一区| 久久免费在线观看| 日本一欧美一欧美一亚洲视频| 亚洲日本中文字幕免费在线不卡| 欧美成人精品一区二区三区| 日韩中文视频免费在线观看| 欧美亚洲午夜视频在线观看| 亚洲人成77777在线观看网| 夜夜嗨av一区二区三区免费区| 日韩视频免费看| 亚洲成人xxx| 日本国产精品视频| 欧美一区二区三区四区在线| 国产成人午夜视频网址| 92国产精品视频| 日韩欧美中文字幕在线播放| 国产精品十八以下禁看| 欧美性猛交xxxx乱大交| 亚洲精品一区二区在线| 欧美精品videossex88| 日韩免费不卡av| 高清一区二区三区日本久| 国产精品国产三级国产aⅴ9色| 久久中文精品视频| 国产精品精品久久久| 日韩极品精品视频免费观看| 久久亚洲精品毛片| 日韩国产欧美精品一区二区三区| 精品国内产的精品视频在线观看| 夜夜嗨av一区二区三区免费区| 热草久综合在线| 亚洲欧美日韩一区二区在线| 欧美精品xxx| xvideos成人免费中文版| 国产亚洲在线播放| 美日韩丰满少妇在线观看| www.日韩不卡电影av| 欧美有码在线观看| 久久琪琪电影院| 久久不射热爱视频精品| 成人精品视频99在线观看免费| 成人中心免费视频| 午夜精品福利视频| 精品激情国产视频| 欧美日韩亚洲精品内裤| 国产精品九九久久久久久久| 精品福利在线看| 国产精品九九久久久久久久| 亚洲第五色综合网| 最近2019免费中文字幕视频三| 国产亚洲欧洲在线| 色综合伊人色综合网站| 国产精品自产拍在线观| 国产精品18久久久久久麻辣| 日韩欧美在线网址| 日本久久久久久| 久久精品国产69国产精品亚洲| 精品国内亚洲在观看18黄| 久久久亚洲欧洲日产国码aⅴ| 在线看日韩欧美| 日韩视频永久免费观看| 久久综合免费视频影院| 欧美中文字幕视频在线观看| 成人黄色在线观看| 久久久国产精品一区| 欧美日韩另类视频| 亚洲人在线视频| 国产精品草莓在线免费观看| 日韩视频亚洲视频| 国产精品视频大全| 中文字幕欧美亚洲| 日韩美女主播视频| 欧美福利小视频| 成人一区二区电影| 91亚洲va在线va天堂va国| 亚洲国产精品小视频| 国产精品日韩欧美综合| 日韩欧美亚洲一二三区| 丝袜亚洲另类欧美重口| 中文亚洲视频在线| 91影院在线免费观看视频| 日韩欧美在线网址| 国产日韩中文在线| 国产精品美女免费| 亚洲国产99精品国自产| 狠狠躁18三区二区一区| 欧美日韩成人精品| 国产精品久久久久久久久久久新郎| 国产精品扒开腿爽爽爽视频| 亚洲日韩第一页| 日韩欧美中文第一页| 欧美区二区三区| 一本一本久久a久久精品牛牛影视| 97不卡在线视频| 97精品久久久中文字幕免费| 亚洲美女www午夜| 国产精品美女无圣光视频| 国产精品中文字幕久久久| 国产精品高潮呻吟久久av黑人| 欧美日韩国产一中文字不卡| 日韩电影中文字幕在线| 粗暴蹂躏中文一区二区三区| 成人www视频在线观看| 国产精品∨欧美精品v日韩精品|