Wie richte ich die log4j-Eigenschaften so ein, dass jeder Thread eine eigene Protokolldatei ausgibt?

Ich habe mehrere Instanzen einer Thread-Klasse zu einem bestimmten Zeitpunkt ausgeführt. Ich habe das log4j-Setup, das für die Protokollierung verwendet werden soll.

Ich muss log4j so einrichten, dass jede Instanz meiner Thread-Klasse ihr Protokoll in einer anderen Protokolldatei ausgibt.

Folgendes habe ich getan (in Pseudocode)

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);
    }

}

Obwohl oben für jeden Thread, den ich instanziiere, eine Datei erstellt wird, wird nichts an diese Dateien ausgegeben. Jede Hilfe wird sehr geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage