Posted on 2005-04-19 16:17
風太少 閱讀(425)
評論(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