log4j 更改日志文件中Quartz调度程序作业的打印类名称

gdrx4gfi  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(204)

我在Tomcat应用程序上实现了不同的Quartz作业,我想根据每个作业显示的输出更改日志文件中的类显示。目前,我的日志文件中有以下内容:

2022-10-20 11:35:49 DefaultQuartzScheduler_Worker-2 DEBUG DBA:251 - start getAllA
2022-10-20 11:35:49 DefaultQuartzScheduler_Worker-2 DEBUG DBA:299 - end getAllA

意味着对于每个Scheduled Worker,主类是DefaultQuartzScheduler_Worker-X,我需要更改它。
下面是Quartz Scheduler的声明:

try {
        Scheduler scheduler1 = StdSchedulerFactory.getDefaultScheduler();

        JobDetail job1 = JobBuilder.newJob(DB.class)
            .withIdentity("DB", "MyApp")
            .build();

        Trigger trigger1 = TriggerBuilder.newTrigger()
            .withIdentity("DBTrigger", "MyApp")
            .withSchedule(SimpleScheduleBuilder.repeatMinutelyForever(5))
            .build();

        scheduler1.scheduleJob(job1, trigger1);
        scheduler1.startDelayed(120);

    } catch (SchedulerException e) {
        e.printStackTrace();
        log.error("error in scheduler: "+e.toString());
    }

我希望使用TAG类“DB”使日志更明显,但我使用了“DefaultQuartzScheduler_Worker-2”,我尝试使用不同的标识,但它不会更改Log4j中的输出日志。
你知道我该怎么做吗?

huwehgph

huwehgph1#

我终于回答了我自己的“有点愚蠢”的问题......我使用了Log4j的模式,包括%t

%d{yyyy-MM-dd HH:mm:ss} %t %-5p %c{1}:%L - %m%n

在我的例子中,我不需要这个Thread信息,所以我使用下面的Pattern:

[%p] %d{MM-dd-yyyy HH:mm:ss} %c %M - %m%n

在我的日志中更清楚了...但是我认为通过使用withIdentity方法,我正在更新ThreadName...

相关问题