Quartz调度程序不显示Log4j消息

时间:2009-04-07 11:35:08

标签: java logging log4j quartz-scheduler

我正在尝试配置Quartz调度程序以支持日志记录。我曾尝试做以下事情:

在我的应用的classes文件夹中添加了log4j.xml。相同的代码是:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=
    %d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=debug, stdout

在我的调度程序类中添加了以下语句:

static Logger logger = Logger.getLogger("QuartzReport.class");
logger.info("Info");

但是,控制台会在启动时显示以下消息:

log4j:WARN No appenders could be found for logger 
    (org.quartz.simpl.SimpleThreadPool).
log4j:WARN Please initialize the log4j system properly.

请告诉我,我是否遗漏了某些东西。

此致 IBU

3 个答案:

答案 0 :(得分:2)

你遗漏了两点:

  1. 您的配置文件是属性文件,而不是XML。所以你应该把它保存为'log4j.properties';
  2. 确保第1项中提到的文件位于应用程序的类路径中(假设正在使用最近的log4j实现)。
  3. 祝你好运,

    道格拉斯

答案 1 :(得分:0)

还尝试使用此行更新log4j配置

log4j.logger.org.quartz = debug,stdout

答案 2 :(得分:0)

您可以使用配置文件(属性文件)以编程方式(在QuartzReport类的主方法中)配置代码。

较新版本的Log4j将尝试从您的类路径加载名为log4j.properties的文件,并使用它自动配置您的记录器。

在您的情况下,BasicConfigurator.configure()调用将覆盖您的属性文件中的任何定义(即,您的属性文件被忽略)。日志显示的输出尊重您在PatternLayout构造函数中提供的模式。有关如何定义此类模式的更多详细信息,请参阅PatternLayout class documentation