lbom

          小江西

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            18 隨筆 :: 21 文章 :: 69 評論 :: 0 Trackbacks

          1、編寫log4j配置文件(如log.config):
          # Set root category priority to INFO and its only appender to CONSOLE.
          #log4j.rootCategory=INFO, FILE
          log4j.rootCategory=INFO, CONSOLE, LOGFILE

          # Set the enterprise logger category to FATAL and its only appender to CONSOLE.
          log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

          # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
          log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
          log4j.appender.CONSOLE.Threshold=INFO
          log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
          log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n

          # LOGFILE is set to be a File appender using a PatternLayout.
          #WORKDIR setted by system.setProperty!
          log4j.appender.LOGFILE=org.apache.log4j.FileAppender
          log4j.appender.LOGFILE.File=${WORKDIR}/log/adapter.log
          log4j.appender.LOGFILE.Append=true
          log4j.appender.LOGFILE.Threshold=INFO
          log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
          log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

          2、使用LogServlet初始化log4j的配置參數:
          package com.cait.adapter.servlet;

          import java.io.FileInputStream;
          import java.io.IOException;
          import java.util.Properties;

          import javax.servlet.ServletConfig;
          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;

          import org.apache.log4j.Logger;
          import org.apache.log4j.PropertyConfigurator;

          public class LogServlet extends HttpServlet {

           /**
            *
            */
           private static final long serialVersionUID = -1837292475877367091L;

           static Logger logger = Logger.getLogger(LogServlet.class);

           public LogServlet() {
           }

           public void init(ServletConfig sc) throws ServletException {

            String prefix = "";
            if (sc != null) {
             prefix = sc.getServletContext().getRealPath("/");
            } else {
             prefix = "D:/Project_java/Any3Adapter/web";
            }
            String file = sc.getInitParameter("logConfigFile");
            
            if (System.getProperty("WORKDIR") == null) {
             System.setProperty("WORKDIR", prefix);
            }
            
            Properties props = new Properties();
            try {
             FileInputStream istream = new FileInputStream(prefix + file);
             props.load(istream);
             istream.close();
             String logFile = prefix + props.getProperty("log4j.appender.file.File");// 設置路徑
             props.setProperty("log4j.appender.file.File", logFile);
             PropertyConfigurator.configure(props);
            }
            catch (IOException e) {
             System.out.println("Could not read configuration file [" + file + "].");
             System.out.println("Ignoring configuration file [" + file + "].");
             return;
            }
           }

          }

          3、設置web.xml的servlet選項,保證配置被加載
           <servlet>
            <servlet-name>LogServlet</servlet-name>
            <servlet-class>com.cait.adapter.servlet.LogServlet</servlet-class>
            <init-param>
             <param-name>logConfigFile</param-name>
             <param-value>WEB-INF/config/log.config</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
           </servlet>

          4、測試用例:
          ....
             Logger log=Logger.getLogger(this.getClass());
             log.info("LogServlet Test:    testOK");
          ...
          posted on 2007-05-24 14:09 lbom 閱讀(1210) 評論(0)  編輯  收藏 所屬分類: 個人總結
          主站蜘蛛池模板: 宣威市| 中山市| 宜昌市| 乌什县| 怀远县| 玉门市| 双江| 福清市| 时尚| 景德镇市| 鱼台县| 独山县| 房产| 彭水| 黑山县| 保德县| 图片| 太白县| 白银市| 天峨县| 绿春县| 临邑县| 南开区| 六盘水市| 霞浦县| 兴化市| 延长县| 厦门市| 前郭尔| 全南县| 尼木县| 抚顺县| 渑池县| 横山县| 玉环县| 上蔡县| 南宁市| 正宁县| 尼勒克县| 泗水县| 即墨市|