Spring boot 在本地服务器中找不到记录器的附加器,但相同的应用程序在生产服务器-log4j中工作正常

Spring boot 在本地服务器中找不到记录器的附加器,但相同的应用程序在生产服务器-log4j中工作正常,spring-boot,log4j,slf4j,tomcat8,Spring Boot,Log4j,Slf4j,Tomcat8,我们有两台服务器。一个用于QA,另一个用于生产服务器(托管在AWS上)。我在这两种环境中都使用了“apache-tomcat-8.5.16”服务器。我们已经开发了SpringBoot应用程序,两台服务器上部署的应用程序的Log4j配置是相同的 logging.level.net.companyname= DEBUG logging.level.com.google.api.ads.dfp.lib.client.DfpServiceClient.soapXmlLogger=WARN logging

我们有两台服务器。一个用于QA,另一个用于生产服务器(托管在AWS上)。我在这两种环境中都使用了“apache-tomcat-8.5.16”服务器。我们已经开发了SpringBoot应用程序,两台服务器上部署的应用程序的Log4j配置是相同的

logging.level.net.companyname= DEBUG
logging.level.com.google.api.ads.dfp.lib.client.DfpServiceClient.soapXmlLogger=WARN
logging.level.com.google.api.ads.dfp.lib.client.DfpServiceClient.requestInfoLogger=INFO
然而,在本地服务器(用于QA)中,我们得到错误“log4j:WARN找不到记录器(org.springframework.web.context.support.StandardServletEnvironment)的追加器”

但在生产服务器中,我们获得的日志没有任何问题。 如果有关系,下面是与log4j相关的pom.xml配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>
    <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
</dependency>

org.springframework.boot
spring-boot-starter-log4j2
运行时
log4j
log4j
1.2.16
org.slf4j
slf4j-log4j12
甚至“apache-tomcat-8.5.16/conf/logging.properties”文件中的配置在这两台服务器中也是相同的

logging.level.net.companyname= DEBUG
logging.level.com.google.api.ads.dfp.lib.client.DfpServiceClient.soapXmlLogger=WARN
logging.level.com.google.api.ads.dfp.lib.client.DfpServiceClient.requestInfoLogger=INFO
如何在生产环境中获取日志? 如果两个tomcat服务器版本相同,并且使用相同的配置设置在这两个服务器上部署了相同的war,那么还有什么区别呢

多谢各位

更新: 我将war文件从服务器下载到本地进行测试,即使在那里,log4j也可以正常工作。我还需要检查什么


谢谢。

这是另一种推荐的解决方案。 在等待了一周之后,我想,我为什么要担心已经到了生命尽头的框架呢?我升级到了log4j2,并在类路径中提供了log4j2.xml文件(在我的例子中,/src/main/resources,在STS-Spring工具套件、Spring应用程序中工作)

然而,这种奇怪行为的实际原因仍不清楚

下面是pom.xml文件,该文件仅针对详细性定制了log4j2依赖项

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </dependency>


org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2
运行时
org.apache.logging.log4j
log4japi
org.apache.logging.log4j
log4j型芯
org.slf4j
slf4j-log4j12
log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - ***CustomLog*** %msg ***/CustomLog***%n" />
        </Console>

        <File name="traceLoggerFile" fileName="logs/trace.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
        <File name="debugLoggerFile" fileName="logs/debug.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
        <File name="infoLoggerFile" fileName="logs/info.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
        <File name="errorLoggerFile" fileName="logs/errors.log">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
        </File>
    </Appenders>

    <Loggers>
        <Logger name="com.packageName" level="TRACE">
            <AppenderRef ref="traceLoggerFile" level="TRACE" />
            <AppenderRef ref="debugLoggerFile" level="DEBUG" />
            <AppenderRef ref="infoLoggerFile" level="INFO" />
            <AppenderRef ref="errorLoggerFile" level="ERROR" />
        </Logger>
        <Root level="DEBUG">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

%d%p%c{1.}[%t]%m%n
%d%p%c{1.}[%t]%m%n
%d%p%c{1.}[%t]%m%n
%d%p%c{1.}[%t]%m%n
您需要在此行中提供正确的包名或类名

<Logger name="com.packageName" level="TRACE">

如果有人能找到真正的原因,我会很高兴的


谢谢。

你好,有什么想法吗?需要进一步澄清吗?