Java Tomcat9 Log4j2-两台服务器之间的日志记录不同

Java Tomcat9 Log4j2-两台服务器之间的日志记录不同,java,centos7,log4j2,tomcat9,jelastic,Java,Centos7,Log4j2,Tomcat9,Jelastic,我正在运行两个不同的Tomcat9服务器(DEV、PROD),每个服务器位于不同的CentOS 7服务提供商,使用相同的log4j2.xml生成的应用程序日志也不同。在DEV版本中,我得到了com.example的完整日志,但在PROD版本中,我只得到org.hibernate日志 这两台服务器的配置类似(如下图所示)。两者都使用相同的log4j2.xml,部署在每个Tomcat上的MyWebApp.war是相同的 这两个Tomcat都是标准安装,也就是说,我没有向其中任何一个添加任何log4j

我正在运行两个不同的Tomcat9服务器(DEV、PROD),每个服务器位于不同的CentOS 7服务提供商,使用相同的log4j2.xml生成的应用程序日志也不同。在DEV版本中,我得到了com.example的完整日志,但在PROD版本中,我只得到org.hibernate日志

这两台服务器的配置类似(如下图所示)。两者都使用相同的log4j2.xml,部署在每个Tomcat上的MyWebApp.war是相同的

这两个Tomcat都是标准安装,也就是说,我没有向其中任何一个添加任何log4j JAR或属性

我希望有人需要考虑一些事情。

谢谢

鲍勃

开发配置:

 Provider: VPS
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64 

 java -cp /opt/tomcat/apache-tomcat-9.0.20/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.20
    Server built:   May 3 2019 22:26:00 UTC
    Server number:  9.0.20.0
    OS Name:        Linux
    OS Version:     2.6.32-042stab127.2
    Architecture:   amd64
    JVM Version:    1.8.0_212-b04
    JVM Vendor:     Oracle Corporation
 Provider: Jelastic
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64

 java -cp /opt/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.19
    Server built:   Apr 12 2019 14:22:48 UTC
    Server number:  9.0.19.0
    OS Name:        Linux
    OS Version:     3.10.0
    Architecture:   amd64
    JVM Version:    1.8.0_202-b08
    JVM Vendor:     Oracle Corporation
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="logPath">/home/example/logs</Property>
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
        </Console>

        <RollingFile name="rollingFile" fileName="${logPath}/MyWebApp.log"
            filePattern="${logPath}/cucumber-log_%d{yyyy-MM-dd}.log">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
            <Policies>
                <OnStartupTriggeringPolicy />
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
            </Policies>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="org.springframework" level="warn" additivity="false">
           <AppenderRef ref="console" level="warn"/>
           <AppenderRef ref="rollingFile" level="warn"/>
        </Logger>
        <Logger name="org.hibernate" level="debug" additivity="false">
           <AppenderRef ref="console" level="debug"/>
           <AppenderRef ref="rollingFile" level="debug"/>
        </Logger>
        <Logger name="com.example" level="trace" additivity="false">
           <AppenderRef ref="console" level="trace"/>
           <AppenderRef ref="rollingFile" level="trace"/>
        </Logger>
        <Root level="TRACE" additivity="false">
            <AppenderRef ref="console" />
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>
cat /proc/23517/cmdline
/usr/bin/java-Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.20/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/apache-tomcat-9.0.20/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.20/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.20-Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.20-Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.20/temporg.apache.catalina.startup.Bootstrapstart
cat /proc/19765/cmdline
/usr/java/jdk1.8.0_202/bin/java.orig-javaagent:/java_agent/jelastic-gc-agent.jar=period=300,debug=0-XX:+UseStringDeduplication-XX:+UseG1GC-Xmaxf0.3-Xminf0.1-Xmx614M-Xmn30M-Xms32M-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-DReceiverIp=-DMagicPort=-XX:+UseCompressedOops-server-Djvm=tomcat-Djava.awt.headless=true-Djava.net.preferIPv4Stack=false-DjvmRid=-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat-Dcatalina.home=/opt/tomcat-Djava.io.tmpdir=/opt/tomcat/temporg.apache.catalina.startup.Bootstrapstarttomcat
产品配置:

 Provider: VPS
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64 

 java -cp /opt/tomcat/apache-tomcat-9.0.20/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.20
    Server built:   May 3 2019 22:26:00 UTC
    Server number:  9.0.20.0
    OS Name:        Linux
    OS Version:     2.6.32-042stab127.2
    Architecture:   amd64
    JVM Version:    1.8.0_212-b04
    JVM Vendor:     Oracle Corporation
 Provider: Jelastic
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64

 java -cp /opt/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.19
    Server built:   Apr 12 2019 14:22:48 UTC
    Server number:  9.0.19.0
    OS Name:        Linux
    OS Version:     3.10.0
    Architecture:   amd64
    JVM Version:    1.8.0_202-b08
    JVM Vendor:     Oracle Corporation
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="logPath">/home/example/logs</Property>
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
        </Console>

        <RollingFile name="rollingFile" fileName="${logPath}/MyWebApp.log"
            filePattern="${logPath}/cucumber-log_%d{yyyy-MM-dd}.log">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
            <Policies>
                <OnStartupTriggeringPolicy />
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
            </Policies>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="org.springframework" level="warn" additivity="false">
           <AppenderRef ref="console" level="warn"/>
           <AppenderRef ref="rollingFile" level="warn"/>
        </Logger>
        <Logger name="org.hibernate" level="debug" additivity="false">
           <AppenderRef ref="console" level="debug"/>
           <AppenderRef ref="rollingFile" level="debug"/>
        </Logger>
        <Logger name="com.example" level="trace" additivity="false">
           <AppenderRef ref="console" level="trace"/>
           <AppenderRef ref="rollingFile" level="trace"/>
        </Logger>
        <Root level="TRACE" additivity="false">
            <AppenderRef ref="console" />
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>
cat /proc/23517/cmdline
/usr/bin/java-Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.20/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/apache-tomcat-9.0.20/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.20/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.20-Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.20-Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.20/temporg.apache.catalina.startup.Bootstrapstart
cat /proc/19765/cmdline
/usr/java/jdk1.8.0_202/bin/java.orig-javaagent:/java_agent/jelastic-gc-agent.jar=period=300,debug=0-XX:+UseStringDeduplication-XX:+UseG1GC-Xmaxf0.3-Xminf0.1-Xmx614M-Xmn30M-Xms32M-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-DReceiverIp=-DMagicPort=-XX:+UseCompressedOops-server-Djvm=tomcat-Djava.awt.headless=true-Djava.net.preferIPv4Stack=false-DjvmRid=-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat-Dcatalina.home=/opt/tomcat-Djava.io.tmpdir=/opt/tomcat/temporg.apache.catalina.startup.Bootstrapstarttomcat
log4j2.xml:

 Provider: VPS
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64 

 java -cp /opt/tomcat/apache-tomcat-9.0.20/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.20
    Server built:   May 3 2019 22:26:00 UTC
    Server number:  9.0.20.0
    OS Name:        Linux
    OS Version:     2.6.32-042stab127.2
    Architecture:   amd64
    JVM Version:    1.8.0_212-b04
    JVM Vendor:     Oracle Corporation
 Provider: Jelastic
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64

 java -cp /opt/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.19
    Server built:   Apr 12 2019 14:22:48 UTC
    Server number:  9.0.19.0
    OS Name:        Linux
    OS Version:     3.10.0
    Architecture:   amd64
    JVM Version:    1.8.0_202-b08
    JVM Vendor:     Oracle Corporation
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="logPath">/home/example/logs</Property>
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
        </Console>

        <RollingFile name="rollingFile" fileName="${logPath}/MyWebApp.log"
            filePattern="${logPath}/cucumber-log_%d{yyyy-MM-dd}.log">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
            <Policies>
                <OnStartupTriggeringPolicy />
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
            </Policies>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="org.springframework" level="warn" additivity="false">
           <AppenderRef ref="console" level="warn"/>
           <AppenderRef ref="rollingFile" level="warn"/>
        </Logger>
        <Logger name="org.hibernate" level="debug" additivity="false">
           <AppenderRef ref="console" level="debug"/>
           <AppenderRef ref="rollingFile" level="debug"/>
        </Logger>
        <Logger name="com.example" level="trace" additivity="false">
           <AppenderRef ref="console" level="trace"/>
           <AppenderRef ref="rollingFile" level="trace"/>
        </Logger>
        <Root level="TRACE" additivity="false">
            <AppenderRef ref="console" />
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>
cat /proc/23517/cmdline
/usr/bin/java-Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.20/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/apache-tomcat-9.0.20/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.20/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.20-Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.20-Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.20/temporg.apache.catalina.startup.Bootstrapstart
cat /proc/19765/cmdline
/usr/java/jdk1.8.0_202/bin/java.orig-javaagent:/java_agent/jelastic-gc-agent.jar=period=300,debug=0-XX:+UseStringDeduplication-XX:+UseG1GC-Xmaxf0.3-Xminf0.1-Xmx614M-Xmn30M-Xms32M-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-DReceiverIp=-DMagicPort=-XX:+UseCompressedOops-server-Djvm=tomcat-Djava.awt.headless=true-Djava.net.preferIPv4Stack=false-DjvmRid=-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat-Dcatalina.home=/opt/tomcat-Djava.io.tmpdir=/opt/tomcat/temporg.apache.catalina.startup.Bootstrapstarttomcat
PROD-cmdline:

 Provider: VPS
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64 

 java -cp /opt/tomcat/apache-tomcat-9.0.20/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.20
    Server built:   May 3 2019 22:26:00 UTC
    Server number:  9.0.20.0
    OS Name:        Linux
    OS Version:     2.6.32-042stab127.2
    Architecture:   amd64
    JVM Version:    1.8.0_212-b04
    JVM Vendor:     Oracle Corporation
 Provider: Jelastic
 rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64

 java -cp /opt/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo
    Server version: Apache Tomcat/9.0.19
    Server built:   Apr 12 2019 14:22:48 UTC
    Server number:  9.0.19.0
    OS Name:        Linux
    OS Version:     3.10.0
    Architecture:   amd64
    JVM Version:    1.8.0_202-b08
    JVM Vendor:     Oracle Corporation
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="logPath">/home/example/logs</Property>
    </Properties>

    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
        </Console>

        <RollingFile name="rollingFile" fileName="${logPath}/MyWebApp.log"
            filePattern="${logPath}/cucumber-log_%d{yyyy-MM-dd}.log">
            <PatternLayout
                pattern="%d [%t] %-5p [%C.%M()] %m%n" />
            <Policies>
                <OnStartupTriggeringPolicy />
                <TimeBasedTriggeringPolicy interval="1"
                    modulate="true" />
            </Policies>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="org.springframework" level="warn" additivity="false">
           <AppenderRef ref="console" level="warn"/>
           <AppenderRef ref="rollingFile" level="warn"/>
        </Logger>
        <Logger name="org.hibernate" level="debug" additivity="false">
           <AppenderRef ref="console" level="debug"/>
           <AppenderRef ref="rollingFile" level="debug"/>
        </Logger>
        <Logger name="com.example" level="trace" additivity="false">
           <AppenderRef ref="console" level="trace"/>
           <AppenderRef ref="rollingFile" level="trace"/>
        </Logger>
        <Root level="TRACE" additivity="false">
            <AppenderRef ref="console" />
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>
</Configuration>
cat /proc/23517/cmdline
/usr/bin/java-Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.20/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/apache-tomcat-9.0.20/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-9.0.20/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat/apache-tomcat-9.0.20-Dcatalina.home=/opt/tomcat/apache-tomcat-9.0.20-Djava.io.tmpdir=/opt/tomcat/apache-tomcat-9.0.20/temporg.apache.catalina.startup.Bootstrapstart
cat /proc/19765/cmdline
/usr/java/jdk1.8.0_202/bin/java.orig-javaagent:/java_agent/jelastic-gc-agent.jar=period=300,debug=0-XX:+UseStringDeduplication-XX:+UseG1GC-Xmaxf0.3-Xminf0.1-Xmx614M-Xmn30M-Xms32M-Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-DReceiverIp=-DMagicPort=-XX:+UseCompressedOops-server-Djvm=tomcat-Djava.awt.headless=true-Djava.net.preferIPv4Stack=false-DjvmRid=-Djdk.tls.ephemeralDHKeySize=2048-Djava.protocol.handler.pkgs=org.apache.catalina.webresources-Dorg.apache.catalina.security.SecurityListener.UMASK=0027-Dignore.endorsed.dirs=-classpath/opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/opt/tomcat-Dcatalina.home=/opt/tomcat-Djava.io.tmpdir=/opt/tomcat/temporg.apache.catalina.startup.Bootstrapstarttomcat

我是OP,问题解决了

是因为在Tomcat部署之后,Jelastic没有刷新webapps文件夹。因此,使用了旧的log4j2.xml


鲍勃

我是OP。问题解决了

是因为在Tomcat部署之后,Jelastic没有刷新webapps文件夹。因此,使用了旧的log4j2.xml


Bob

在两台服务器中运行ps aux,并找到每台服务器的进程id。然后为这两个进程运行cat/proc/{proc_id}/cmdLine并查找传递的参数。搜索任何日志级别的参数。@Perimosh-我没有想到查看cmdline-谢谢。我编辑了这篇文章,并添加了DEV和PROD命令行。它们都包含logging.properties,但文件是相同的。我在PROD cmdline中没有看到任何其他会影响日志记录的内容-是吗?您的开发人员和PROD似乎是相同的,但我看到了一些差异。从continuos集成和发布的角度来看,如果DEV是部署到PROD之前的最后一个环境,那么它们看起来应该“几乎”相同。不管怎样,您是否检查过这些:prod java.util.logging.config.file=/opt/tomcat/conf/logging.properties prod catalina.home=/opt/tomcat dev catalina.home=/opt/tomcat/apache-tomcat-9.0.20 dev java.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.20/conf/logging.properties是否真的相同??以防万一,您可以在DEV和PROD?@Perimosh中对war文件执行md5-正如我前面所说的“它们都包括logging.properties,但文件是相同的”。我把文件拉到我的工作站,用BeyondCompare。它们是相同的。在DEV和PROD上部署了相同的WAR。在两台服务器上运行ps aux,并查找每个服务器的进程id。然后为这两个进程运行cat/proc/{proc_id}/cmdLine并查找传递的参数。搜索任何日志级别的参数。@Perimosh-我没有想到查看cmdline-谢谢。我编辑了这篇文章,并添加了DEV和PROD命令行。它们都包含logging.properties,但文件是相同的。我在PROD cmdline中没有看到任何其他会影响日志记录的内容-是吗?您的开发人员和PROD似乎是相同的,但我看到了一些差异。从continuos集成和发布的角度来看,如果DEV是部署到PROD之前的最后一个环境,那么它们看起来应该“几乎”相同。不管怎样,您是否检查过这些:prod java.util.logging.config.file=/opt/tomcat/conf/logging.properties prod catalina.home=/opt/tomcat dev catalina.home=/opt/tomcat/apache-tomcat-9.0.20 dev java.util.logging.config.file=/opt/tomcat/apache-tomcat-9.0.20/conf/logging.properties是否真的相同??以防万一,您可以在DEV和PROD?@Perimosh中对war文件执行md5-正如我前面所说的“它们都包括logging.properties,但文件是相同的”。我把文件拉到我的工作站,用BeyondCompare。它们是相同的。在DEV和PROD上部署了相同的WAR。