自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java多線(xiàn)程調(diào)試如何完成信息輸出處理

開(kāi)發(fā) 后端
Java多線(xiàn)程調(diào)試需要我們不斷重復(fù)復(fù)雜而又繁重的工作。但這又是我們必須去做的。下面我們就來(lái)看看在Java多線(xiàn)程調(diào)試中關(guān)鍵的幾個(gè)點(diǎn)。

Java多線(xiàn)程調(diào)試是很繁瑣的,但是還是需要我們不斷進(jìn)行相關(guān)的學(xué)習(xí)。下面我們就來(lái)看看在Java多線(xiàn)程調(diào)試中需要我們注意的相關(guān)關(guān)鍵點(diǎn)。為了查看中間結(jié)果一般采用將信息輸出到System.out中。

這樣就產(chǎn)生了一個(gè)問(wèn)題:很多個(gè)線(xiàn)程的輸出信息都簡(jiǎn)單的輸出到控制臺(tái)上,當(dāng)我們要查看每個(gè)線(xiàn)程自己處理的中間信息時(shí)很麻煩。最近在一個(gè)實(shí)踐項(xiàng)目中,使用了Log4j讓每個(gè)線(xiàn)程輸出到自己的log文件中,這樣在調(diào)試的時(shí)候很方便。

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 

說(shuō)明:rootLogger為控制臺(tái),Crawler,LinkProcessor為兩個(gè)線(xiàn)程,分別輸出到Crawler.log和LinkProcessor.log文件中。

2. 在線(xiàn)程中添加日志代碼

  1. ……  
  2. import org.apache.log4j.Logger;  
  3. ……  
  4. public class Crawler extends Thread {  
  5. ……  
  6. protected static Logger logger = Logger.
    getLogger(Crawler.class);  
  7. ……  
  8. logger.debug(msg);  
  9. ……  

這樣,在線(xiàn)程運(yùn)行的時(shí)候會(huì)自動(dòng)產(chǎn)生兩個(gè)日志文件Crawler.log和LinkProcessor.log,并將中間結(jié)果輸出到各自的日志文件中。以上就是對(duì)Java多線(xiàn)程調(diào)試的相關(guān)代碼介紹。

【編輯推薦】

  1. Java多線(xiàn)程初學(xué)者指南系列教程
  2. 使用Java多線(xiàn)程實(shí)現(xiàn)任務(wù)分發(fā)
  3. Java多線(xiàn)程如何防止主線(xiàn)的阻塞
  4. Java多線(xiàn)程中wait語(yǔ)句的具體使用方法
  5. Java多線(xiàn)程如何解決關(guān)鍵字封鎖問(wèn)題
責(zé)任編輯:張浩 來(lái)源: 博客園
相關(guān)推薦

2010-03-17 09:33:30

Java多線(xiàn)程方案

2013-12-12 17:21:46

Lua出入輸出

2010-03-15 17:56:23

Java多線(xiàn)程

2015-11-18 18:56:36

Java多線(xiàn)程處理

2024-09-26 10:51:51

2009-03-12 10:52:43

Java線(xiàn)程多線(xiàn)程

2023-05-12 14:14:00

Java線(xiàn)程中斷

2024-06-12 12:50:06

2010-03-15 19:47:30

Java多線(xiàn)程程序

2021-12-26 18:22:30

Java線(xiàn)程多線(xiàn)程

2009-06-29 17:49:47

Java多線(xiàn)程

2010-03-18 09:22:31

Java多線(xiàn)程遞歸

2010-03-15 18:34:08

Java多線(xiàn)程

2021-06-29 07:47:23

多線(xiàn)程協(xié)作數(shù)據(jù)

2010-04-14 09:20:26

.NET多線(xiàn)程

2024-04-30 12:56:00

多線(xiàn)程.NET

2010-03-16 18:40:59

Java多線(xiàn)程編程

2023-10-26 21:44:02

Java多線(xiàn)程方法

2016-11-10 16:30:22

Java多線(xiàn)程

2012-09-21 13:30:51

Java多線(xiàn)程Java發(fā)展
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)