2015-08-24 93 views
0

我正在開發一個Java應用程序,並希望使用Quartz Scheduling功能。我獲得最新版本2.2.1並嘗試從記錄的示例開始。我停止了Quartz的日誌系統集成。
我的Java應用程序沒有記錄(使用我的特殊的非標準日誌記錄庫),並且不想使用Log4J.But Quartz通過下面的消息請求它。 如何通過編寫代碼(無xml文件或其他)來設置禁用日誌記錄功能的Quartz。我不想將任何日誌jar庫包含到我的應用程序中。Java Quartz Logging功能禁用源代碼,不包括日誌庫

SchedulerFactory sf = new StdSchedulerFactory(); 
    Scheduler sched = sf.getScheduler(); 

JobDetail job = JobBuilder.newJob(Job.class) 
     .withIdentity("job1", "group1") 
     .build(); 
CronTrigger trigger = TriggerBuilder.newTrigger() 
     .withIdentity("trigger1", "group1") 
     .withSchedule(CronScheduleBuilder.cronSchedule("0/20 * * * * ?")) 
     .build(); 
sched.scheduleJob(job, trigger); 

,並得到錯誤

Failed to instantiate SLF4J LoggerFactory 
Reported exception: 
java.lang.NoClassDefFoundError: org/apache/log4j/Level 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128) 
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281) 
Disconnected from the target VM, address: '127.0.0.1:53833', transport: 'socket' 
    at org.quartz.impl.StdSchedulerFactory.<init>(StdSchedulerFactory.java:303) 
    at Main2.main(Main2.java:18) 
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 7 more 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Level 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128) 
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281) 
    at org.quartz.impl.StdSchedulerFactory.<init>(StdSchedulerFactory.java:303) 
    at Main2.main(Main2.java:18) 
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 7 more 

回答

0

由於Quartz使用SLF4J,你必須把它配置爲使用NOPLogger(無操作記錄儀,一個什麼也不做「虛擬日誌」)。 奇怪的是這是默認配置,所以請確保您的項目中沒有配置文件