java - 如何使用java在多线程中使用log4j?

标签 java multithreading log4j

我想使用 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/

相关文章:

java - 以通用方式重试方法调用

java - 如何强制转换 lambda 方法参数?

python - 检测 OS X 中挂起的 python shell

java - java中单个类的线程减少

java - 如何根据消息级别将消息记录在单独的文件中

java - log4j - 如何以编程方式从日志记录中排除某些类

java - 如何在 DialogFragment 中设置一分钟间隔

multithreading - 检查冷熔线程

java - 无法在我的 Web 应用程序中创建 log4j 日志文件

java - ICEfaces 与 RichFaces 的详细比较?