Я пытался следовать документации здесь на Log4j с помощью SLF4J, но по-прежнему не удается использовать правильный адаптер. Итак, как можно использовать aLog4j
в приложении Vaadin 8? Какие зависимости нужно добавить в pom.xml
?
Добавление журнала Log4j в приложение Vaadin 8
Ответы (1)
Для работы ведения журнала требуется несколько дополнений/изменений.
Наряду с зависимостями, упомянутыми в документации, необходимо добавить:
- SLF4J
- jul-to-slf4j
- slf4j-log4j12-x.x.x.j
Также следует добавить log4j-core
. Соответствующий фрагмент pom.xml выглядит следующим образом:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.29</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.29</version>
</dependency>
Следующим шагом будет добавление файла
log4j.properties
(в моем случае подsrc/main/resources/log4j.properties
). Здесь вы можете настроить свойства ведения журналаКак указано в документации, в определение сервлета следует добавить
SLF4JBridgeHandler
(в случае, если сервлет только один).
@WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends VaadinServlet {
static {
SLF4JBridgeHandler.install();
}
}
- Импорт, используемый для
Logger
иLoggerFactory
:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.bridge.SLF4JBridgeHandler;
- Чтобы убедиться, что для регистратора выбрана правильная реализация, его простое имя печатается
System.out.println("Adapter name:" + logger.getClass().getSimpleName());
. Вывод должен быть:Log4jLoggerAdapter
Примечание. Я использовал log4-core
меньше, чем 2.9
, так как я использую Java 8 и причал Ошибка сканирования записи.... Вы должны перейти на более новую версию, если ваш jre> 8
person
anasmi
schedule
03.12.2019