我正在尝试配置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
答案 0 :(得分:2)
你遗漏了两点:
道格拉斯
答案 1 :(得分:0)
还尝试使用此行更新log4j配置
log4j.logger.org.quartz = debug,stdout
答案 2 :(得分:0)
您可以使用配置文件(属性文件)以编程方式(在QuartzReport
类的主方法中)配置代码。
较新版本的Log4j将尝试从您的类路径加载名为log4j.properties
的文件,并使用它自动配置您的记录器。
在您的情况下,BasicConfigurator.configure()
调用将覆盖您的属性文件中的任何定义(即,您的属性文件被忽略)。日志显示的输出尊重您在PatternLayout
构造函数中提供的模式。有关如何定义此类模式的更多详细信息,请参阅PatternLayout
class documentation。