java - 如何使用 log4j2 记录 CXF web 服务请求?

标签 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>

src/main/resources/META-INF/cxf/org.apache.cxf.Logger:

org.apache.cxf.common.logging.Log4jLogger

最佳答案

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

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0</version>
    </dependency>

关于java - 如何使用 log4j2 记录 CXF web 服务请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24931576/

相关文章:

java - 如何使用属性文件在 log4j.xml 中设置值?

java - 如何设置 log4j 属性以便每个线程输出到它自己的日志文件?

java - (JAVA) Wildfly 10 CXF 原生依赖模块问题

java - 如何配置 CXF 不担心未知元素?

java - 如何使用 java spring 注释在 MongoDB 中创建完全填充的引用对象

java - 为什么建议将 scan.setCacheBlocks(false) 用于 mapReduce 作业?

java - 将 log4j 语句重定向到 java 中的自定义控制台

java - JNA 与 DLL(德尔福)

java - In-Memory单表数据库算法或库

java - CXF 客户端返回 NullPointerException