当前位置: 首页 > 知识库问答 >
问题:

带有嵌入式Tomcat的Spring Boot中的Log4J2

周健
2023-03-14

我试图让Spring Boot中的嵌入式Tomcat记录到我的Log4J2配置中,但它不起作用。

根据这个与外部Tomcat打交道的答案:https://stackoverflow.com/a/28639068/1845463似乎有必要将一些罐子移到$Catalina_home/libs等。我认为这在Spring Boot中是不可能的,不是吗?

有人设法让log4j2运行,并能够为catalina日志配置appender吗?

提前谢谢

共有2个答案

子车青青
2023-03-14

编辑:最简单的方法是添加sping-boo-starter-log4j2

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

N. B.确保其他组件不需要不同版本的log4j。这可能会导致运行时错误.例如elasticsearchjava API需要2.6和sping-boot-starter-log4j2:1.3.8提供log4j: 2.4.1,如果我们正在构建一个连接elasticsearch的应用程序,并且也使用Spring Boot。然后我们将最终得到NoSuchMEDError或类似的错误。为了解决这些错误,我们应该在pom中添加log4j2:2.6

谢唯
2023-03-14

您使用的是哪个Spring启动版本?我相信是1.4。x、 释放将其提升到log4j2。如@M.Deinum所述,包括:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>

带来:

log4j核心log4j api等。看见https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2/1.4.6.RELEASE

最好使用以下方法排除日志启动器:

     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
 类似资料:
  • 我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?

  • null ServerEndpoint: 谢谢你。

  • 2017年11月9日下午2:21:22 org.apache.coyote.abstractProtocol start Info:Starting ProtocolHandler[“http-nio-8080”]2017年11月9日下午2:21:30 org.jboss.resteasy.core.exceptionHandler严重:未能执行javax.ws.rs.NotFoundExcept

  • 我使用带有嵌入式Tomcat和Spring Boot Starter安全性的Spring Boot 1.2.1。此外,我对一些Web服务使用RestController,我希望只有具有特定角色的特定用户才能访问这些Web服务。但是它不起作用,安全性不使用RoleVoter来检查角色。在下面的示例中,用户“user”可以访问Web服务,尽管他没有正确的角色! 首先我的应用程序配置 现在是我的安全配置

  • 问题内容: 我们有一个基于Java的系统,该系统从数据库中读取数据,将各个数据字段与预设标签合并,然后将结果转换为with 。 在格式,它看起来是这样的: 现在,我正在寻找一种允许某些字段包含静态 HTML格式 内容的方法。此内容将通过我们的支持HTML编辑器生成(沿着线的东西,等),或者从外部粘贴。 我的计划是遵循此JavaWorld文章的配方: 用于将HTML格式的字符串转换为正确的XHTML

  • 这将启动一个嵌入式Tomcat实例,这很好。 问题是,其他配置文件不需要嵌入式服务器(例如,我使用JMS来处理传入的消息,而不是REST)。 有什么方法可以阻止在默认情况下启动Tomcat,并且只在REST配置类中使用它?例如,通过使用注释该类 谢谢