将Log4j日志添加到Vaadin 8应用程序

时间:2019-12-03 13:50:36

标签: java vaadin vaadin8

我尝试在Piping to Log4j using SLF4J处遵循文档,但仍无法使用正确的适配器。那么,在Vaadin 8应用程序中如何使用Log4j?要添加到pom.xml的依赖项是什么?

1 个答案:

答案 0 :(得分:3)

要进行日志记录,需要进行多项添加/更改。

  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>
  1. 下一步是添加一个log4j.properties文件(在我的情况下为src/main/resources/log4j.properties下)。在这里,您可以配置日志记录属性

  2. 如文档中所述,应将SLF4JBridgeHandler添加到Servlet定义中(以防只有一个servlet)

 @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
    @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
    public static class MyUIServlet extends VaadinServlet {
        static {
            SLF4JBridgeHandler.install();
        }
    }
  1. 用于LoggerLoggerFactory的进口是:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.bridge.SLF4JBridgeHandler;
  1. 要验证是否为记录器选择了正确的实现,其简单名称将显示为System.out.println("Adapter name:" + logger.getClass().getSimpleName());。输出应为:Log4jLoggerAdapter

注意:因为使用Java 8和码头Error scanning entry ...,所以我使用的log4-core少于2.9。如果您的jre> 8

,则应升级到较新的版本。
相关问题