我想使用 log4j 为每个线程写日志,日志文件名为“workthread..log”,第一个线程在文件“workthread-1.log”上打印日志,第二个线程在“workthread-2.log”上等等。
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
请帮帮我好吗?
问候
最佳答案
你可以使用 MDC
MDC.put(键,值); --在代码中
和%X{key}--在log4j配置文件中的文件名字段
关于java - 如何使用java在多线程中使用log4j?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8226615/