Постоянно разрабатывая библиотеки 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
- Выберите «Справка / Установка нового программного обеспечения…».
- Добавьте URL-адрес хранилища P2 и установите «slf4j-api» — вы можете напрямую использовать папку из шага 1 с URL-адресом файла, например: «file: / pathtoyour / p2-repository /».
- Добавьте только что установленный «slf4j.api» в ваш файл MANIFEST.MF.
- Начните использовать SLF4J, как обычно, в вашем коде.
Этап 2: Производство
Здесь описываются задачи, которые пользователь вашего пользовательского плагина должен выполнить, чтобы начать регистрацию с Log4J. Ниже предполагается, что ваш пользовательский плагин уже установлен.
Шаг 1. Установите библиотеки журналов в Eclipse IDE.
- Выберите «Справка / Установка нового программного обеспечения…».
- Установите «Целевые компоненты Equinox» с сайта обновлений Eclipse.
- Добавьте URL-адрес хранилища P2 и установите следующие плагины:
- Apache Log4j
- OPS4J Pax ConfMan – Свойства Загрузчик
- OPS4J Pax Logging – API
- OPS4J Pax Logging – Сервис
Шаг 2: Настройте ведение журнала PAX
- Установите местоположение для вашей конфигурации журнала в «eclipse.ini» как «vmarg
' -vmargs -Xms40m -Xmx512m -Dbundles.configuration.location= <config-dir>
1234-vmargs
-Xms40m
-Xmx512m
-Dbundles.configuration.location=<em><config-
dir
><
/em
>
- Создайте папку с именем «services» в вышеупомянутом «config-dir».
- Создайте свойства Log4J с именем «org.ops4j.pax.logging.properties» в «службах».
123456
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
- Откройте окно «Консоль».
- Выберите «Host OSGI Console».
- Запустите следующие пакеты:
1234
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 .