3

我正在尝试配置我的 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.

请告诉我是否缺少某些东西。

问候, 伊布

4

3 回答 3

2

你基本上错过了两点:

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

祝你好运,

道格拉斯

于 2009-04-07T12:41:58.213 回答
0

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

log4j.logger.org.quartz=调试,标准输出

于 2009-04-07T16:33:27.330 回答
0

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

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

在您的情况下,该BasicConfigurator.configure()调用将覆盖您的属性文件中的任何定义(即,您的属性文件被忽略)。并且日志显示的输出尊重您在PatternLayout构造函数中提供的模式。更多关于如何定义这种模式的细节可以在PatternLayout类文档中找到。

于 2009-05-13T12:13:14.800 回答