Статьи

SLF4J вход в Eclipse плагины

Постоянно разрабатывая библиотеки Maven и чистую Java, я никогда не думал, что может возникнуть проблема с выпуском нескольких операторов журнала при разработке плагина Eclipse. Но похоже, что в воображаемом разработчике Eclipse все всегда находится внутри среды Eclipse и ничто не находится за пределами вселенной Eclipse.

Если вы будете искать вышеуказанный заголовок с помощью Google, одна из первых статей, которые вы найдете, — это статья о «платформе логов». Но как насчет 3-х библиотек? Они не могут использовать каркас Eclipse.

В моих библиотеках я использую API SLF4J и предоставляю пользователю право решать, какую реализацию ведения журнала (Log4J, Logback, JDK) он или она хочет использовать. И это именно то, что я хочу сделать в Eclipse. Трудно было понять, как именно это сделать, но вот кусочки этой головоломки.

Этап 1: Развитие

Здесь описаны шаги на этапе разработки вашего пользовательского плагина.

Шаг 1: Загрузите ваши библиотеки в репозиторий P2

Все, что вы хотите использовать в Eclipse, должно быть установлено из репозитория P2. Но большинство библиотек, которые я использую, находятся в репозитории Maven. Насколько я знаю, нет такого понятия, как основной репозиторий P2, подобный «Maven Central», и все библиотеки, которые я нашел в репозиториях P2, были довольно старыми. Таким образом, вы должны создать один самостоятельно.

К счастью, существует плагин Maven под названием p2-maven-plugin, который преобразует все ваши файлы Maven JAR в один репозиторий P2. Вы можете загрузить плагин в папку вашего сайта или просто установить его с локального жесткого диска.

Для этого примера вам понадобятся следующие библиотеки:

  • org.slf4j: SLF4J-апи: 1.6.6
  • org.slf4j: SLF4J-log4j12: 1.6.6
  • log4j: log4j: 1.2.17
  • org.ops4j.pax.logging: чел-каротаж апи: 1.7.0
  • org.ops4j.pax.logging: чел-каротаж обслуживание: 1.7.0
  • org.ops4j.pax.confman: чел-confman-propsloader: 0.2.2

Формат «groupId: artifactid: version» используется для «p2-maven-plugin». Чтобы пропустить этот шаг, вы также можете использовать http://www.fuin.org/p2-repository/ .

Шаг 2: Установите SLF4J API в Eclipse IDE

  1. Выберите «Справка / Установка нового программного обеспечения…».
    Eclipse / Помощь / Установить
  2. Добавьте URL-адрес хранилища P2 и установите «slf4j-api» — вы можете напрямую использовать папку из шага 1 с URL-адресом файла, например: «file: / pathtoyour / p2-repository /». Instal Slf4J API
  3. Добавьте только что установленный «slf4j.api» в ваш файл MANIFEST.MF. Зависимости в MANIFEST.MF
  4. Начните использовать SLF4J, как обычно, в вашем коде.

Этап 2: Производство

Здесь описываются задачи, которые пользователь вашего пользовательского плагина должен выполнить, чтобы начать регистрацию с Log4J. Ниже предполагается, что ваш пользовательский плагин уже установлен.

Шаг 1. Установите библиотеки журналов в Eclipse IDE.

  1. Выберите «Справка / Установка нового программного обеспечения…». Eclipse / Помощь / Установить
  2. Установите «Целевые компоненты Equinox» с сайта обновлений Eclipse. Установите целевые компоненты Equinox
  3. Добавьте URL-адрес хранилища P2 и установите следующие плагины:
    • Apache Log4j
    • OPS4J Pax ConfMan – Свойства Загрузчик
    • OPS4J Pax Logging – API
    • OPS4J Pax Logging – Сервис

    Установите Log Libs

Шаг 2: Настройте ведение журнала PAX

  1. Установите местоположение для вашей конфигурации журнала в «eclipse.ini» как «vmarg ' -vmargs -Xms40m -Xmx512m -Dbundles.configuration.location= <config-dir>
    1
    2
    3
    4
    -vmargs
    -Xms40m
    -Xmx512m
    -Dbundles.configuration.location=<em><config-dir></em>

  2. Создайте папку с именем «services» в вышеупомянутом «config-dir».
  3. Создайте свойства Log4J с именем «org.ops4j.pax.logging.properties» в «службах».

    1
    2
    3
    4
    5
    6
    log4j.rootLogger=INFO, FILE
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=<em><path-to-your-log></em>/example.log
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m%n
    log4j.logger.your.package=DEBUG

Шаг 3: Активируйте запись PAX

  1. Откройте окно «Консоль». Показать вид консоли
  2. Выберите «Host OSGI Console». Выберите OSGI Console
  3. Запустите следующие пакеты:
    1
    2
    3
    4
    start org.eclipse.equinox.cm
    start org.ops4j.pax.logging.pax-logging-api
    start org.ops4j.pax.logging.pax-logging-service
    start org.ops4j.pax.configmanager

    Начать регистрацию пакетов

Теперь вы должны увидеть свои записи журнала в настроенном файле «example.log».

Шаг 4: Изменение конфигурации

Если вы хотите изменить конфигурацию в «org.ops4j.pax.logging.properties», просто перезапустите PAX Configmanager в консоли OSGI:

1
2
stop org.ops4j.pax.configmanager
start org.ops4j.pax.configmanager

Удачной регистрации!

Ссылка: SLF4J Регистрация подключаемых модулей Eclipse от нашего партнера по JCG Майкла Шнелла в блоге A Java Developer’s Life .