I want to write log for each thread using log4j and log file name will be "workthread..log",first thread print log on file "workthread-1.log" and second thread on "workthread-2.log" and so on.
class MyRunnable implements Runnable
{
private Logger logger=null;
public MyRunnable()
{
DOMConfigurator.configure(this.getClass().getClassLoader().getResource(LOG4J_FILEPATH));
logger =Logger.getLogger(classname);
}
public void run()
{
logger.info("Important job running in MyRunnable"+Thread.currentThread().getName());
}
}
public class TestThreads
{
public static void main (String [] args)
{
Thread[] worker=new Thread[3];
MyRunnable r = new MyRunnable();
for(int i=0;i<3;i++) {
worker[i]=new Thread(r);
worker[i].start();
}
}
}//class
please help me?
Regards
you could use MDC
MDC.put(key,value); --in the code
and %X{key}-- in the file name field in the log4j configuration file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With