Имам множество екземпляри на клас нишка, работещи във всеки даден момент. Имам настройка на log4j, която да се използва за нуждите на регистриране.
Имам нужда от начин да настроя log4j, така че всеки екземпляр на моя клас нишка да извежда своя журнал в различен лог файл.
Ето какво направих (в псевдо код)
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);
}
}
Въпреки че горното създава файл за всяка нишка, която инстанцирам, то не извежда нищо към тези файлове. Всяка помощ е много ценена.