丄諦啲仇魜ヤ
          如 果 敵 人 讓 你 生 氣 , 那 說 明 你 沒 有 勝 他 的 把 握!
          posts - 6,comments - 56,trackbacks - 1
           Logger 對(duì)象用來記錄特定系統(tǒng)或應(yīng)用程序組件的日志消息。一般使用圓點(diǎn)分隔的層次名稱空間來命名 Logger。

          一 、 java.util.logging.Logger   
                  用某個(gè) getLogger 工廠方法來獲得 Logger 對(duì)象
                   Logger log=Logger.getLogger(this.getClass().getName());

          二、 org.apache.log4j.Logger

                 Logger log=Logger.getLogger(Hello.class);


          ****************************************************************************************

          使用Log4j,第一步就是獲取日志記錄器,這個(gè)記錄器將負(fù)責(zé)控制日志信息。其語法為:

            public static Logger getLogger( String name)

            通過指定的名字獲得記錄器,如果必要的話,則為這個(gè)名字創(chuàng)建一個(gè)新的記錄器。
                 Name一般取本類的名字,比如:

            static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

            ②讀取配置文件

            當(dāng)獲得了日志記錄器之后,第二步將配置Log4j環(huán)境,其語法為:

                  BasicConfigurator.configure (): 自動(dòng)快速地使用缺省Log4j環(huán)境。
            PropertyConfigurator.configure ( String configFilename) :讀取使用Java的特性文件編寫的配置文件。

          例:PropertyConfigurator.configure(".\\src\\log4j.properties")
            DOMConfigurator.configure ( String filename ) :讀取XML形式的配置文件。

            ③插入記錄信息(格式化日志信息)

            當(dāng)上兩個(gè)必要步驟執(zhí)行完畢,就可輕松地使用不同優(yōu)先級(jí)別的日志記錄語句插入到您想記錄日
                 志的任何 地 方,其語法如下:

            Logger.debug ( Object message ) ;
            Logger.info ( Object message ) ;
            Logger.warn ( Object message ) ;
            Logger.error ( Object message ) ;

          在web程序中使用log4j注意問題

          1、    由于jsp或servlet在執(zhí)行狀態(tài)時(shí)沒有當(dāng)前路徑概念,所有使用PropertyConfigurator.configure(String)語句找log4j.properties文件時(shí)要給出相對(duì)于當(dāng)前jsp或servlet的路徑轉(zhuǎn)化成為一個(gè)絕對(duì)的文件系統(tǒng)路徑。方法是使用 servletcontext.getrealpath(string)語句。例:

          //得到當(dāng)前jsp路徑

          String prefix =  getServletContext().getRealPath("/");

          //讀取log4j.properties

          PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties");

          2、相應(yīng)的log4j.properties設(shè)置某個(gè)屬性時(shí)也要在程序中設(shè)置絕對(duì)路徑。例:

          log4j.appender.R.File屬性設(shè)置日志文件存放位置。我們可以用讀寫.properties配置文件的方法進(jìn)行靈活設(shè)置。


          *********************************************************

          一個(gè)實(shí)例:
          一:

          配置一個(gè)名為log4j.properties 文件,放到項(xiàng)目的src文件下面即可
          log4j.rootLogger= INFO, A1 , R
          log4j.appender.A1=org.apache.log4j.ConsoleAppender
          log4j.appender.A1.layout=org.apache.log4j.PatternLayout
          log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
          log4j.appender.R=org.apache.log4j.RollingFileAppender
          #指定日志文件放的位置
          log4j.appender.R.File=D:/env/environment/webEnv/WEB-INF/log4j.log

          log4j.appender.R.MaxFileSize=100KB
          log4j.appender.R.MaxBackupIndex=1
          log4j.appender.R.layout=org.apache.log4j.PatternLayout
          #log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
          log4j.appender.R.layout.ConversionPattern=%d %-5p [%t] (%13F:%L) %3x - %m%n

          二:
          在src下建一個(gè)初始化的servlet讓程序啟動(dòng)時(shí)加載log4j.properties文件

          import javax.servlet.http.HttpServlet;
          import org.apache.log4j.Logger;
          import org.apache.log4j.PropertyConfigurator;

          public class Log4jInit extends HttpServlet {

           private static final long serialVersionUID = 1L;

           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);       
            }
            Logger _logger = Logger.getLogger (Log4jInit.class);
            _logger.info("- Log4j Test Successfully!");
           }
          }

           三:在web.xml中配置這個(gè)Log4jInit .java這個(gè)servlet


          <servlet>
            <servlet-name>log4jlog4j-init</servlet-name>
            <servlet-class>Log4jInit</servlet-class>
            <init-param>
             <param-name>log4j</param-name>
             <param-value>/WEB-INF/classes/log4j.properties</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
           </servlet>





          posted on 2008-01-08 22:39 Crying 閱讀(245) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA基礎(chǔ)
          主站蜘蛛池模板: 得荣县| 赫章县| 瑞昌市| 太康县| 庄河市| 汉中市| 甘德县| 洪泽县| 林州市| 上林县| 虞城县| 泸州市| 富宁县| 资阳市| 信阳市| 阿城市| 迁安市| 宜良县| 湘阴县| 镇宁| 盐源县| 盘山县| 博客| 沭阳县| 博野县| 新昌县| 曲松县| 察哈| 上蔡县| 景洪市| 新源县| 桐乡市| 荣成市| 千阳县| 张家口市| 将乐县| 阳朔县| 延津县| 吉安县| 松桃| 阳东县|