這幾天做項(xiàng)目,需要做一個(gè)類似于控制臺(tái)的界面,可以將日志回顯到一個(gè)文本區(qū)域里,幾經(jīng)查找,反復(fù)測(cè)試寫了以下測(cè)試代碼。
這是log4j.properties的配置內(nèi)容
log4j.rootCategory= ,WriterAppender

log4j.appender.WriterAppender=org.apache.log4j.WriterAppender
log4j.appender.WriterAppender.Threshold=debug
log4j.appender.WriterAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.WriterAppender.layout.ConversionPattern=%d{ISO8601} - %p - %m%n
主程序
import java.io.PipedReader;
import java.io.PipedWriter;
import java.io.Writer;

import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
import org.apache.log4j.WriterAppender;

public class Log4jMain {
static public Logger logger = Logger.getLogger(Log4jMain.class);

public static void main(String[] arg) {
Logger root = Logger.getRootLogger();
try {
Appender appender = root.getAppender("WriterAppender");
PipedReader reader = new PipedReader();
Writer writer = new PipedWriter( reader) ;
((WriterAppender) appender).setWriter(writer);
Thread t = new AaaThread(reader);
t.start();
Logger logger = Logger.getLogger(Log4jMain.class);
logger.error("asdf");
logger.info("asdf");
logger.debug("asdf");
logger.fatal("asdf");
//hh是一個(gè)class,test方法里只有幾個(gè)logger.info("aaa"),用于測(cè)試用,這東西可以去掉
new HH().test();

} catch (Exception e) {
}

}
}
因?yàn)閘og4j提供的是 Writer,所以通過(guò)使用PipedWriter連接到PipedReader,并通過(guò)一個(gè)thread來(lái)處理PipedReader的數(shù)據(jù)就可以回顯了。如果你需要的話可以將下面的System.out.println(scanner.nextLine());改成你需要顯示的地方就行了。
import java.io.PipedReader;
import java.util.Scanner;

public class AaaThread extends Thread {
PipedReader reader;

public AaaThread(PipedReader reader) {
this.reader = reader;
}

public void run() {
Scanner scanner = new Scanner(reader);
while (scanner.hasNext()) {
System.out.println(scanner.nextLine());
}
}
}

log4j.rootCategory= ,WriterAppender



































//hh是一個(gè)class,test方法里只有幾個(gè)logger.info("aaa"),用于測(cè)試用,這東西可以去掉

























| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 1 | 2 | 3 | 4 | 5 |
常用鏈接
留言簿(2)
隨筆分類
隨筆檔案
- 2008年6月 (1)
- 2008年4月 (3)
- 2008年2月 (1)
- 2008年1月 (1)
- 2007年12月 (1)
- 2007年10月 (1)
- 2007年7月 (2)
- 2007年6月 (2)
- 2007年5月 (1)
- 2007年4月 (6)
- 2007年2月 (1)
- 2007年1月 (4)
- 2006年11月 (1)
- 2006年10月 (1)
- 2006年9月 (5)
framework
j2me
java
linux
web
其他
友情鏈接
- 我的旅游筆記
- 我的旅游筆記
素材
最新評(píng)論

- 1.?re: 為org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,與Ctrl+y功能
- 找到原因了,必須加textViewer.setDocument(new Document());才好使
- --yumin_999@163.com
- 2.?re: 為org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,與Ctrl+y功能
- 反復(fù)測(cè)試,還是不好使,奇怪。yumin_999@163.com
- --yumin_999@163.com
- 3.?re: ibatis批量代碼
- 這個(gè)能事物回滾嗎?我也是這樣子寫的 但是事物沒(méi)有回滾 不知道什么怎么回事
- --pes
- 4.?re: Spring+ibatis批量處理心得3
- 評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
- --孫繼超
- 5.?re: DB2的jdbc type-4驅(qū)動(dòng)
-
您好 ,我也遇到了像您一樣的問(wèn)題,我的qq是178147633,能幫幫我嗎?
我也是用type 4連接的db2,版本是8.2。到現(xiàn)在還沒(méi)連上 - --wk