使用多个线程更改记录器实例

时间:2016-02-28 10:08:33

标签: java multithreading logging log4j

我在下面编写了代码来处理使用多线程的请求。这里ConnectorRunner是一个可运行的对象 -

SELECT s.dwh_end_date,
       t.*,
       '-1' as PROMOTION_DROP_EMP_CODE,
       trunc(sysdate +1) as PROMOTION_END_DATE,
      'K01' as PROMOTION_DROP_REASON,
       -1 as PROMOTION_DROP_WO_NUMBER
FROM STG_PROMO_EXPIRE_DATE t
INNER JOIN fct_customer_services s
 ON(t.dwh_product_key = s.dwh_product_key)

在ConnectorRunner类中,我正在编写一些执行日志。我想以这样的方式编写日志:特定请求的所有日志都转到以该请求的请求ID命名的日志文件中。为了实现这一点,我在每次迭代中为每个请求创建一个新的记录器实例,并设置文件appender以在请求id命名的文件上写日志并将其传递给ConnectorRunner构造函数。

我面临的问题是,所有线程(所有请求)的日志都被写入属于最后一个线程的日志文件(最后执行的线程)。我不确定这里出了什么问题因为我每次创建一个新的ConnectorRunner对象并为每个线程创建一个新的记录器实例。

非常感谢任何帮助/指导。

0 个答案:

没有答案