当前位置: 首页 > 面试题库 >

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

潘鸿文
2023-03-14
问题内容

我想将所有传入和传出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>


 类似资料:
  • 我希望使用log4j2从我的web应用程序和服务器(Tomcat6)本身进行日志记录,最好都记录到同一个文件中。我的配置对web应用程序很好,但对服务器类不太好。 我想要的是像下面这样的行被写入文件(它们目前只被写入控制台)

  • 问题内容: 我正在尝试使用 Log4j2 将spring日志打印到文件和控制台中。我猜这是我的Log4j2配置中的问题。我无法使其正常运行。我的log4j2.xml文件中有以下配置: 这些是我在pom文件中具有的依赖项:(可能其中一些不是必需的) 我没有在Java代码中做任何与spring相关的事情。我正在使用Apache Camel的Main类,该类读取我的spring配置并加载bean。 我究

  • 我试图从log4j1更改为log4j2。我所做的: 已删除旧配置文件log4j。xml 创建了新的配置文件log4j2。xml 创建了jboss部署结构。xml 编辑的pom 环境:野蝇10 1 EAR 4 WAR文件中没有使用web.xml。以前的log4j配置日志在EAR中(仅) Log4j2配置文件 Jboss部署结构 新的maven依赖关系 我之前说过我在SLF4j中使用log4j1。这些

  • 我需要支持将特定包登录到聊天中。将错误记录到错误中。日志如何做到这一点?到目前为止,我在几个appender中创建了阈值过滤器,但出现了错误。日志保持为空并进行聊天。日志有一个条目,它不属于特定的包。毕竟,我仔细阅读了log4j的文档,也尝试了2天来解决这个问题,并在网站和youtube上学习了一些教程。我还尝试了以下方法:使用Log4j2进行apachelog4j2包特定的日志记录。xml我也尝

  • 我有一些REST服务,我想记录请求和响应。它们接收一个JSON请求并生成另一个JSON响应。我创建了一个拦截器,但无法获取请求/响应正文。这是我的cxf配置: 这是我的拦截器代码: ContextMessageInInterceptor和ContextMessageOutInterceptor工作正常,它们分别转到ContextJSONInInterceptor和ContextJSONOutInt

  • 问题内容: 我在应用程序中使用log4j2。 我想要的是将要进行调试的所有内容都放入控制台,将要进行“信息”的所有内容都进入myapp.log,仅将“信息”的所有内容都进入“ myapp- audit.log”。 原因是,INFO主要由成功的数据修改组成(例如,“用户创建”,“用户更新”,“用户删除”等)。如果有效,则为数据修改的审核日志。 但是我不知道该怎么做。 如何仅获取“信息”以登录到“ m