風行天下

          JAVA太極
          posts - 4, comments - 10, trackbacks - 0, articles - 55
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Commons Logging + Log4j快速入門

          Posted on 2005-04-19 16:17 風太少 閱讀(427) 評論(0)  編輯  收藏

          所謂快速入門,就是用最簡明的代碼以及配置文件讓你把它用起來。總共只有30行左右的內容,用上一遍,再看看代碼,基本上就可以弄明白commons logging和log4j的用法了。

          如果你想真正弄明白commons logging,可以看它網站上提供的user guide:http://jakarta.apache.org/commons/logging/guide.html
          竹筍炒肉(http://hedong.3322.org)的站長曾把其中精要部分翻譯出來:Jakarta Commons Logging學習筆記
          http://hedong.3322.org/archives/000316.html) (選擇GB2312編碼)

          如果你想學習log4j的配置文件,小魚兒的網絡日志上有一篇:一個全面的Log4j屬性配置文件(http://www.blogbus.com/blogbus/blog/diary.php?diaryid=278262),非常棒。

          在運行下邊的程序之前,你需要先下載commons logging和log4j的jar包,google一下就有了。程序里有一點注釋,記得看看。

          共三個文件:LogFoo.java、commons-logging.properties、log4j.properties

          LogFoo.java

          import org.apache.commons.logging.Log;
          import org.apache.commons.logging.LogFactory;

          public class LogFoo {
              //考考你;我這里為什么要用protected和final?
              protected final Log logger = LogFactory.getLog(getClass());
              LogFoo() {
                  logger.info("this is a log test");
                  logger.warn("warn");
                  logger.error("error");
              }

              public static void main(String[] args) {

                  //在log4j.properties我們讓日志文件輸出到messageapp.log,沒有指明路徑。你可以用下邊這行語句找到messageapp.log的位置,也就是user.dir
                  //System.out.println(System.getProperty("user.dir"));
                  //commons-logging.properties和log4j.properties應該位于class應用的目錄,如果你不知道改放哪,可以用下邊這句查查。在這個例子里,和LogFoo.java放一處就行了。
                  //System.out.println(System.getProperty("java.class.path"));
                  LogFoo lf = new LogFoo();
              }
          }

          commons-logging.properties

          #比較常用的有SimpleLog(commons logging自帶的一個簡單實現)、Jdk14Logger(JDK 1.4所帶的logger)、Log4JLogger(就是我們這次用Log4J了)。另外在有些貼子里有人使用Log4JCategoryLog或Log4jFactory,這兩個都是已經被Deprecat了的,不要用。
          org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

          log4j.properties

          log4j.appender.stdout=org.apache.log4j.ConsoleAppender
          log4j.appender.stdout.Target=System.out
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
          log4j.appender.file.layout.ConversionPattern==%d{yyyy-MM-dd HH:mm:ss} [%c] %p:%L -%m%n

          log4j.appender.file=org.apache.log4j.RollingFileAppender
          log4j.appender.file.File=D:\\messageapp.log
          log4j.appender.file.MaxFileSize=512KB
          log4j.appender.file.MaxBackupIndex=5
          log4j.appender.file.layout=org.apache.log4j.PatternLayout
          log4j.appender.file.layout.ConversionPattern==%d{yyyy-MM-dd HH:mm:ss} [%c] %p:%L -%m%n

          #注意一下,網上有些貼子的示例程序之所以跑完看不到log,原因就是他們把rootLogger=info設置為warn級別,而程序里則只調用logger.info()方法,自然就不會產生log文件了。
          log4j.rootLogger=info, stdout, file
          log4j.logger.my.foo = error, file


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


          網站導航:
           
          主站蜘蛛池模板: 涿州市| 甘孜县| 长武县| 常山县| 龙川县| 响水县| 宁蒗| 龙岩市| 察雅县| 荃湾区| 凉城县| 洛阳市| 沾化县| 巩留县| 林周县| 修文县| 资源县| 宜城市| 常熟市| 遵化市| 白银市| 轮台县| 贺兰县| 汉寿县| 建湖县| 伊吾县| 齐河县| 简阳市| 松原市| 甘谷县| 旌德县| 陇西县| 文水县| 栖霞市| 延津县| 晴隆县| 台北市| 乌苏市| 疏附县| 昌吉市| 石渠县|