Прочитав об этом, я почувствовал, что понял это, и теперь я озадачен. Вот что я ожидаю и что я сделал:
Я ожидаю войти в Karaf, перезагрузить свой пакет и запустить log:tail
и в конечном итоге увидеть сообщение журнала, подобное этому:
13:28:47.265 INFO [Blueprint] You just created a class called: MyClass.
Используемые технологии: - OSGI Container, реализованный Apache Karaf - Blueprint, реализованный Aries
Мой пакет OSGI импортирует регистратор pax из Karaf
org.slf4j.*; provider=paxlogging
насколько я понимаю, это означает, что ссылка на одноэлементный регистратор Karaf будет предоставлена во время выполнения моему приложению, которое использует только API.
Мои классы используют интерфейс SLF4J, поэтому в моем проекте существует зависимость
slf4j-api:slf4j-api:1.7.26
.Класс существует
Класс служит моделью
public class MyClass {
private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
public MyClass() {
LOGGER.info("You just created a class called: {}", this);
}
@Override
public String toString() { return "MyClass" };
}
Я просто следовал спецификациям OSGI LoggerFactory:
Потребители этого API не должны реализовывать этот тип https://osgi.org/specification/osgi.cmpn/7.0.0/service.log.html#org.osgi.service.log.LoggerFactory
- Овен создает один:
XML-схема проекта
<?xml version="1.0" encoding="UTF-8" ?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<description>
A sample Blueprint XML to demonstrate
the initialization procedure in the hopes of reproducing a problem.
</description>
<bean id="myclass1" class=com.stack.MyClass/>
</blueprint>