風(fēng)行天下

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

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

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

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

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

          共三個(gè)文件: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應(yīng)該位于class應(yīng)用的目錄,如果你不知道改放哪,可以用下邊這句查查。在這個(gè)例子里,和LogFoo.java放一處就行了。
                  //System.out.println(System.getProperty("java.class.path"));
                  LogFoo lf = new LogFoo();
              }
          }

          commons-logging.properties

          #比較常用的有SimpleLog(commons logging自帶的一個(gè)簡單實(shí)現(xiàn))、Jdk14Logger(JDK 1.4所帶的logger)、Log4JLogger(就是我們這次用Log4J了)。另外在有些貼子里有人使用Log4JCategoryLog或Log4jFactory,這兩個(gè)都是已經(jīng)被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

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 贡嘎县| 颍上县| 科技| 开江县| 康马县| 萝北县| 萨迦县| 永嘉县| 临城县| 汝南县| 乳山市| 玉门市| 富川| 浦城县| 封丘县| 毕节市| 越西县| 津市市| 霞浦县| 兰溪市| 铁岭县| 高邑县| 子长县| 台山市| 信丰县| 新营市| 万宁市| 孟津县| 赣榆县| 遵义县| 长子县| 米林县| 舒兰市| 石门县| 蓝田县| 张家川| 苏州市| 许昌县| 沾益县| 朝阳区| 崇文区|