Кварцевый планировщик не отображает сообщения Log4j - PullRequest
3 голосов
/ 07 апреля 2009

Я пытаюсь настроить планировщик Quartz для поддержки ведения журнала. Я пытался сделать следующее:

Добавлен 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.

Пожалуйста, скажите мне, что-то упускаю.

С уважением, Иб

Ответы [ 3 ]

2 голосов
/ 07 апреля 2009

Вам не хватает двух пунктов:

  1. Ваш файл конфигурации - это файл свойств, а не XML. Поэтому вы должны сохранить его как 'log4j.properties';
  2. Убедитесь, что файл, упомянутый в пункте 1, находится в classpath приложения (при условии, что используется недавняя реализация log4j).

Удачи,

Douglas

0 голосов
/ 13 мая 2009

Вы можете настроить свой код либо программно (как в методе main вашего класса QuartzReport), либо с помощью файла конфигурации (файла ваших свойств).

Более новые версии Log4j будут пытаться загрузить файл с именем log4j.properties из вашего classpath и использовать его для автоматической настройки вашего регистратора.

В вашем случае вызов BasicConfigurator.configure() переопределит любые определения в вашем файле свойств (т. Е. Ваш файл свойств игнорируется). И вывод, отображаемый в журнале, соответствует шаблону, который вы указали в конструкторе PatternLayout. Более подробную информацию о том, как определить такой шаблон, можно найти в документации PatternLayout класса .

0 голосов
/ 07 апреля 2009

Также попробуйте обновить конфигурацию log4j с помощью этой строки

log4j.logger.org.quartz = отладка, стандартный вывод

...