Java Log4j2在tomcat'中记录类;s共享类路径

Java Log4j2在tomcat'中记录类;s共享类路径,java,tomcat7,log4j2,Java,Tomcat7,Log4j2,我有一个webapp,在它的WEB-INF文件夹下有自己的类,它使用log4j2进行日志记录。我用log4j2web对它进行了配置,可以看到这些类中的日志。到目前为止还不错 然而,我正在破坏我的大脑,查看tomcat的公共/共享类路径中定义的lib(jar)日志。我正在尝试的一个jar(例如一个)也在使用log4j2api进行日志记录 注意,只有当我将jar从公共类路径移动到webapp的WEB-INF下的lib文件夹时,它才会显示日志。这意味着有关appender和logger名称的配置文件没

我有一个webapp,在它的WEB-INF文件夹下有自己的类,它使用log4j2进行日志记录。我用log4j2web对它进行了配置,可以看到这些类中的日志。到目前为止还不错

然而,我正在破坏我的大脑,查看tomcat的公共/共享类路径中定义的lib(jar)日志。我正在尝试的一个jar(例如一个)也在使用log4j2api进行日志记录

注意,只有当我将jar从公共类路径移动到webapp的WEB-INF下的lib文件夹时,它才会显示日志。这意味着有关appender和logger名称的配置文件没有问题

是否有我遗漏的东西,或者这就是log4j2的工作原理? 我正在使用Tomcat7 log4j22.11.0

欢迎任何帮助!谢谢

(简化的)log4j2.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
    <RollingFile name="sample.appender" fileName="server.log"
                 filePattern="server.log.%i.gz" bufferedIO="false" bufferSize="0">
        <PatternLayout pattern="%d [%t] (%F:%L) %-5p - %m%n"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="5242880"/>
        </Policies>
        <DefaultRolloverStrategy max="13"/>
    </RollingFile>
</Appenders>

<Loggers>
    <Logger name="com.my.server" level="DEBUG" additivity="false">
        <AppenderRef ref="sample.appender"/>
    </Logger>

    <Logger name="com.3rd.party.sample" level="DEBUG" additivity="false">
        <AppenderRef ref="sample.appender"/>
    </Logger>

    <Root level="FATAL"/>
</Loggers>


你能发布你的Log4J
2.x
配置文件和一些你也看到的日志语句吗?我会在
元素中配置
sample.appender
,比如。我认为按照您的方式,没有任何库能够将任何内容记录到
server.log
,因为没有指向它的appender,所以所有内容都将通过使用它们的日志库抛出到控制台中。谢谢。但是没有运气。这似乎是一个类路径问题,因为如前所述,在webapp中移动lib是有效的…而且在尝试之后,将我自己的服务器类移动到一个jar中并将其放入公共类路径会禁用所有日志…:(