2010-11-23 2 views
3

Как настроить внутренний мониторинг событий в hsqldb? Когда я запускаю мой Java приложения, я получаю следующие предупреждения:Внутренняя конфигурация журнала событий hsqldb

log4j:WARN No appenders could be found for logger (HSQLDB2C7984E18B.org.hsqldb.persist.Logger). 
log4j:WARN Please initialize the log4j system properly. 

documentation говорит мне log4j это не единственный вариант, но он не говорит мне, как настроить мое приложение. Может ли кто-нибудь указать мне на эту документацию? Помните, что я не хочу использовать log4j для hsqldb.

Следует отметить, что сторонняя банка, на которую я ссылаюсь, требует log4j. Hsqldb автоматически обнаруживает, что log4j присутствует, а затем пытается его использовать? Или мне не хватает чего-то фундаментального в том, как работает журнал?

ответ

1

Отъезд this link. В нем говорится:

Запуск системы в Log4j, если Log4j находится в пути к классу, и в противном случае будет передан java.util.logging.

+0

На самом деле, у меня есть файл log4j.properties в моем пути к классам, и я могу исправить вышеуказанные предупреждения, указав уровень rootLogger, но все дело в том, что я не хочу использовать log4j для HSQLDB. – 2010-11-23 20:29:00

+0

@ Иссак Сазерленд. Я отредактировал ответ. – YWE 2010-11-23 21:02:20

0

Последствие сообщения указывает, что регистрация HSQLDB не будет вестись, потому что не было найдено никаких добавлений.

Если вы хотите, чтобы подавить сообщения, добавьте строку, как один ниже в файл log4j.properties:

log4j.logger.HSQLDB2C7984E18B.org.hsqldb.persist.Logger=FATAL 

Это будет войти только роковые события, которые не случилось бы в нормальных условиях эксплуатации.

Вы также заявляете, что не хотите использовать log4j для HSQLDB. Программные компоненты, которые могут использовать log4j, оставляют конфигурацию протоколирования (включая уровень и где записывать и т. Д.) В параметры свойств log4j, которые вы можете редактировать и настраивать.

В этом случае имя регистратора основано на «уникальном» имени базы данных, которое первоначально автогенерируется, но которое вы можете изменить в HSQLDB.

0

Поскольку, как отмечает YWE, hsqldb по умолчанию использует log4j, если он найден в пути к классам, мне нужно выяснить, как переопределить log4j.properties, обнаруженные в сторонней библиотеке. Это мне удалось сделать следующим образом:

  1. Скопируйте существующие log4j.properties моего проекта и добавьте следующую строку в начале:

    log4j.rootLogger=WARN, CONSOLE 
    
  2. Добавить следующие аргументы VM:

    -Dlog4j.log4j.defaultInitOverride=true 
    -Dlog4j.configuration=C:/full/path/to/my/log4j.properties 
    
  3. Убедитесь, что эта строка кода выполняется раньше всех (например, HSQLDB) пытается использовать log4j:

    org.apache.log4j.PropertyConfigurator.configure("log4j.properties"); 
    
Смежные вопросы