suzixu

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            4 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks
          第一步:先定義一個簡單的log4j工廠類,很簡單,直接繼承Logger
          import org.apache.log4j.Logger;
          import org.apache.log4j.PropertyConfigurator;

          /**
           * 自定義的Logger工廠類,繼承自Logger
           * 
           * 
          @author 見習和尚
           * 
          @since 2010
           * 
          @version v1.0
           
          */

          public class LogFactory extends Logger{

              
          /**
               * 靜態塊---初始化log4j配置文件
               
          */

              
          static {
                  
          //log4j配置文件路徑
                  PropertyConfigurator.configure("D:\\workspace\\LogWeb\\src\\log4j.properties");
              }

              
              
          /**
               * 重載的構造方法
               * 
          @param name
               
          */

              
          protected LogFactory(String name) {
                  
          super(name);
              }

          }


          第二步:在classpath下創建并配置log4j配置文件,配置文件如下(注釋已經寫的很清楚了):
          log4j.properties配置文件如下,可直接copy使用
          ## defined log level;log to Console and to file and to DB
          log4j.rootCategory
          =DEBUG, stdout , R ,DATABASE
          ## printout log to Console
          log4j.appender.stdout
          =org.apache.log4j.ConsoleAppender
          ## log format
          log4j.appender.stdout.layout
          =org.apache.log4j.PatternLayout
          ## Console log format
          ## log4j.appender.stdout.layout.ConversionPattern
          =[QC] %p [%t] %C.%M(%L) | %m%n
          log4j.appender.stdout.layout.ConversionPattern
          =%d{yyyy-MM-dd hh:mm:ss} | [%t] (%F:%L) | %m%n

          ## defined each day create a 
          new logfile
          log4j.appender.R
          =org.apache.log4j.DailyRollingFileAppender

          ## 
          '.'yyyy-MM: each month
          ## 
          '.'yyyy-ww: each week
          ## 
          '.'yyyy-MM-dd: each day
          ## 
          '.'yyyy-MM-dd-a: two files one day
          ## 
          '.'yyyy-MM-dd-HH: per hours
          ## 
          '.'yyyy-MM-dd-HH-mm: per minites
          log4j.appender.R.DatePattern
          ='.'yyyy-MM-dd-HH-mm
          ## defined logfile path
          log4j.appender.R.File
          =D\:\\Program Files\\apache-tomcat-6.0.28\\logs\\gc.log
          log4j.appender.R.layout
          =org.apache.log4j.PatternLayout
          ## 
          %d means date time; %t means which method;
          ## 
          %F means file;%c means class name; %L means which line;
          ## 
          %m means message which we want to print; %n means "\r\n" in windows and "\n" in unix
          ## 
          %p means print log level; %d{yyyy-MM-dd hh:mm:ss} means print "yyyy-MM-dd hh:mm:ss" date
          log4j.appender.R.layout.ConversionPattern
          =%d{yyyy-MM-dd hh:mm:ss} | [%t] (%F:%L) | %m%n

          # in database
          log4j.appender.DATABASE.BufferSize
          =10
          log4j.appender.DATABASE
          =org.apache.log4j.jdbc.JDBCAppender
          log4j.appender.DATABASE.URL
          =jdbc\:mysql\://localhost\:3306/test
          log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
          log4j.appender.DATABASE.user
          =root
          log4j.appender.DATABASE.password
          =password
          log4j.appender.DATABASE.sql
          =INSERT INTO Log4j(message) VALUES ('[framework] %d{yyyy-MM-dd hh\:mm\:ss} | [%t] (%F\:%L) | %m%n'
          log4j.appender.DATABASE.layout
          =org.apache.log4j.PatternLayout 

          log4j.logger.com.neusoft
          =DEBUG
          log4j.logger.com.opensymphony.oscache
          =ERROR
          log4j.logger.net.sf.navigator
          =ERROR
          log4j.logger.org.apache.commons
          =ERROR
          log4j.logger.org.apache.struts
          =WARN
          log4j.logger.org.displaytag
          =ERROR
          log4j.logger.org.springframework
          =DEBUG
          log4j.logger.com.ibatis.db
          =WARN
          log4j.logger.org.apache.velocity
          =FATAL
          log4j.logger.com.canoo.webtest
          =WARN
          log4j.logger.org.hibernate.ps.PreparedStatementCache
          =WARN
          log4j.logger.org.hibernate
          =DEBUG
          log4j.logger.org.logicalcobwebs
          =WARN 

          第三部:在代碼中使用log4j,樣例如下:
          import org.apache.log4j.Logger;
          import org.apache.log4j.Priority;

          import com.sys.common.util.log.LogFactory;

          public class TestLog4j {
              
          static Logger logger = LogFactory.getLogger(TestLog4j.class.getName());

              
          public TestLog4j() {
              }


              
          public static void main(String[] args) {
                  logger.debug(
          "Start of the main() in TestLog4j");
                  logger.info(
          "Just testing a log message with priority set to INFO");
                  logger.warn(
          "Just testing a log message with priority set to WARN");
                  logger.error(
          "Just testing a log message with priority set to ERROR");
                  logger.fatal(
          "Just testing a log message with priority set to FATAL");
                  logger.log(Priority.WARN, 
          "Testing a log message use a alternate form");
              }

          }

          OK!在java application應用中這樣配置就結束了。樣例支持三種輸出:1、控制臺 2、文件 3、數據庫

          另外:如果要在web中使用log4j。只需額外定義一個log4j加載類并配置web.xml即可。加載類如下:
          import org.apache.log4j.PropertyConfigurator;
          import javax.servlet.http.HttpServlet;

          public class Log4jInit extends HttpServlet {

              
          public void init() {
                  String prefix 
          = getServletContext().getRealPath("/");
                  String file 
          = getInitParameter("log4j");
                  
          if (file != null{
                      PropertyConfigurator.configure(prefix 
          + file);
                  }

              }

          }

          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>
          好了,配置完畢。接下來就是用了。。。
          posted on 2010-10-17 19:39 見習和尚 閱讀(400) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 津市市| 沁阳市| 泽普县| 达尔| 临颍县| 西乌| 邢台市| 武冈市| 乌兰县| 巴林左旗| 上杭县| 绥宁县| 南充市| 中山市| 通江县| 莆田市| 平遥县| 高碑店市| 南岸区| 石棉县| 泸西县| 无棣县| 科尔| 达州市| 静乐县| 遂宁市| 五寨县| 云阳县| 涿州市| 海南省| 寿阳县| 峡江县| 吉木乃县| 睢宁县| 威远县| 云龙县| 青海省| 固原市| 都安| 天峻县| 黎城县|