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

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

          二、 org.apache.log4j.Logger

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


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

          使用Log4j,第一步就是獲取日志記錄器,這個記錄器將負責控制日志信息。其語法為:

            public static Logger getLogger( String name)

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

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

            ②讀取配置文件

            當獲得了日志記錄器之后,第二步將配置Log4j環境,其語法為:

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

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

           ?、鄄迦胗涗浶畔ⅲǜ袷交罩拘畔ⅲ?/p>

            當上兩個必要步驟執行完畢,就可輕松地使用不同優先級別的日志記錄語句插入到您想記錄日
                 志的任何 地 方,其語法如下:

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

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

          1、    由于jsp或servlet在執行狀態時沒有當前路徑概念,所有使用PropertyConfigurator.configure(String)語句找log4j.properties文件時要給出相對于當前jsp或servlet的路徑轉化成為一個絕對的文件系統路徑。方法是使用 servletcontext.getrealpath(string)語句。例:

          //得到當前jsp路徑

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

          //讀取log4j.properties

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

          2、相應的log4j.properties設置某個屬性時也要在程序中設置絕對路徑。例:

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


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

          一個實例:
          一:

          配置一個名為log4j.properties 文件,放到項目的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下建一個初始化的servlet讓程序啟動時加載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中配置這個Log4jInit .java這個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) 評論(0)  編輯  收藏 所屬分類: JAVA基礎
          主站蜘蛛池模板: 广宁县| 商水县| 天镇县| 龙南县| 通化市| 旺苍县| 武山县| 兰考县| 武城县| 雷波县| 图木舒克市| 临沭县| 电白县| 汕头市| 淳安县| 杨浦区| 赞皇县| 日土县| 龙门县| 磴口县| 鹿泉市| 富顺县| 东丰县| 汉川市| 高碑店市| 驻马店市| 丰原市| 莱芜市| 泸西县| 额济纳旗| 民县| 丹凤县| 蛟河市| 富顺县| 砚山县| 社会| 鄂温| 柳河县| 马边| 略阳县| 汽车|