轉帖|其它|編輯:郝浩|2010-05-14 14:11:22.000|閱讀 880 次
概述:Java多線程調試是很繁瑣的,但是還是需要我們不斷進行相關的學習。下面我們就來看看在Java多線程調試中需要我們注意的相關關鍵點。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Java多線程調試是很繁瑣的,但是還是需要我們不斷進行相關的學習。下面我們就來看看在Java多線程調試中需要我們注意的相關關鍵點。為了查看中間結果一般采用將信息輸出到System.out中。
這樣就產生了一個問題:很多個線程的輸出信息都簡單的輸出到控制臺上,當我們要查看每個線程自己處理的中間信息時很麻煩。最近在一個實踐項目中,使用了Log4j讓每個線程輸出到自己的log文件中,這樣在調試的時候很方便。
1. 配置log4j.properties文件
1.lg4j.rootLogger=DEBUG,stdout
2.# stdout is set to be a ConsoleAppender.
3.log4j.appender.stdout=org.apache.log4j.ConsoleAppender
4.log4j.appender.stdout.layout=org.apache.log4j.
PatternLayout
5.log4j.appender.stdout.layout.ConversionPattern=
[%t] (%F,%L) - %m%n
6.log4j.additivity.log4j.stdout=false
7.# com.se.crawler.Crawler Appender.
8.log4j.logger.com.se.Crawler.Crawler=DEBUG,Crawler
9.log4j.appender.Crawler=org.apache.log4j.FileAppender
10.log4j.appender.Crawler.File=Crawler.log
11.log4j.appender.Crawler.Append=false
12.log4j.appender.Crawler.layout=org.apache.log4j.PatternLayout
13.log4j.appender.Crawler.layout.ConversionPattern=%m%n
14.log4j.additivity.com.se.crawler.Crawler=false
15.# com.se.crawler.LinkProcessor Appender.
16.log4j.logger.com.se.crawler.LinkProcessor=DEBUG,Link
Processor
17.log4j.appender.LinkProcessor=org.apache.log4j.FileAppender
18.log4j.appender.LinkProcessor.File=LinkProcessor.log
19.log4j.appender.LinkProcessor.Append=false
20.log4j.appender.LinkProcessor.layout=org.apache.log4j.
PatternLayout
21.log4j.appender.LinkProcessor.layout.ConversionPattern=%m%n
22.log4j.additivity.com.se.crawler.LinkProcessor=false
說明:rootLogger為控制臺,Crawler,LinkProcessor為兩個線程,分別輸出到Crawler.log和LinkProcessor.log文件中。
2. 在線程中添加日志代碼
23.……
24.import org.apache.log4j.Logger;
25.……
26.public class Crawler extends Thread {
27.……
28.protected static Logger logger = Logger.
getLogger(Crawler.class);
29.……
30.logger.debug(msg);
31.……
32.}
這樣,在線程運行的時候會自動產生兩個日志文件Crawler.log和LinkProcessor.log,并將中間結果輸出到各自的日志文件中。以上就是對Java多線程調試的相關代碼介紹。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載