如何使用log4j2记录CXF Web服务请求?

mem*_*und 2 java log4j cxf log4j2

我想将所有传入和传出CXF请求记录到特定的日志文件中.但是我使用以下配置获得的是控制台输出.这有什么不对?

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </Console>

        <RollingFile name="CXF" fileName="cxf.log">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <logger name="org.apache.cxf" additivity="false" level="info">
                <AppenderRef ref="CXF"/>
        </logger>
        <logger name="org.apache.cxf.interceptor.LoggingInInterceptor" additivity="false" level="info">
            <AppenderRef ref="CXF" />
        </logger>
        <logger name="org.apache.cxf.interceptor.LoggingOutInterceptor" additivity="false" level="info">
            <AppenderRef ref="CXF" />
        </logger>

        <Root level="all">
            <AppenderRef ref="CONSOLE" />
        </Root>
    </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

SRC /主/资源/ META-INF/CXF/org.apache.cxf.Logger:

org.apache.cxf.common.logging.Log4jLogger
Run Code Online (Sandbox Code Playgroud)

mem*_*und 5

作为一种解决方法,我现在正在使用org.apache.cxf.common.logging.Slf4jLogger和桥接器依赖.

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

  • 我仍然在使用 slf4j 依赖项。对不起 :) (2认同)