2009-07-23 13 views
12

Belirli bir zamanda çalışan bir iş parçacığı sınıfının birden çok örneğini kullanıyorum. Kayıt ihtiyaçları için kullanılacak log4j kurulumum var.Log4j özelliklerini, her bir iş parçacığının kendi günlük dosyasına iletmesini nasıl kurarım?

Log4j'yi kurmanın bir yoluna ihtiyacım var, böylece her bir thread sınıfım, günlüğünü farklı bir günlük dosyasında çıkarır. İşte

O bu dosyalara Herhangi bir çıktı yapar yukarıda ben örneğini her iş parçacığı için bir dosya oluşturur olsa ben

public class doSomething extends Thread { 

    private Logger d_logger; 

    public doSomething(int id){ 
     d_logger = Logger.getLogger("doSomething"+id); 
     String logFileName = "doSomething"+id+".log"; 

     Properties prop = new Properties; 
     prop.setProperty("doSomething"+id,"DEBUG, WORKLOG"); 
     prop.setProperty("log4j.appender.WORKLOG","org.apache.log4j.FileAppender"); 
     prop.setProperty("log4j.appender.WORKLOG.File", logFileName); 
     prop.setProperty("log4j.appender.WORKLOG.layout","org.apache.log4j.PatternLayout"); 
     prop.setProperty("log4j.appender.WORKLOG.layout.ConversionPattern","%d %c{1} - %m%n"); 
     prop.setProperty("log4j.appender.WORKLOG.Threshold","INFO"); 

     PropertyConfigurator.configure(prop); 
    } 

    public void run(){ 
     d_logger.info("Starting to doSomething number" + id); 
    } 

} 

(sözde kod) yapmış budur. Herhangi bir yardım çok takdir edilmektedir.

cevap

13
bir logger kurmak için doğru sözdizimi çünkü dosyalara şey çıkışı değil

:

prop.setProperty("log4j.logger.doSomething"+id,"DEBUG, WORKLOG"); 
+0

teşekkürler! Sadece bir anı vardı! :) –

+0

Log4j2 ile çalışmaz, PropertyConfigurator sınıfı artık desteklenmiyor. – Sanmoy