当前位置: 首页 > 知识库问答 >
问题:

禁用一个web服务的CXF日志记录

秦禄
2023-03-14

在我的应用程序中,我想用业务逻辑记录请求和响应。应用程序使用SOAP通信执行一些后端逻辑,这就是我要记录的内容。

不幸的是,在同一个应用程序中,我必须提供数据(平均为4个请求/秒),让我们假设这个服务名称是PlatformDataService。

如何仅为一个web服务关闭cxf日志记录?

环境:

  • JDK 8
  • cxf 2.7.14
  • AS:Jboss EAP 6.4

我通过以下方式打开服务器登录:

  • 添加记录器组织。阿帕奇。cxf信息

共有1个答案

司迪
2023-03-14

您可以扩展LogginInterceptor和LoggingOutInterceptor。根据soapAction,您只能忽略一个服务的日志记录。

为所有出站请求扩展LoggingOutInterceptor,并像这样重写方法handleMessage。

private boolean doNotLog=false;

public void handleMessage(Message message) throws Fault {
    TreeMap<String,List> protocolHeaders =
            (TreeMap<String, List>) message.get("org.apache.cxf.message.Message.PROTOCOL_HEADERS");
    if (protocolHeaders != null) {
        List value = protocolHeaders.get("SOAPAction");
        String soapAction = value != null ? (String)value.get(0) : "";
        if (soapAction.equalIgnoreCase(YOUR_SERVICE_SOAP_ACTION)) {
            doNotLog=true;
        }
    }
    super.handleMessage(message);
}

现在,您必须在同一个类中重写另一个方法。

@Override
    protected String transform(String originalLogString) {
        if (doNotLog) {
            return null;
        }
        return originalLogString;
    } 

对于所有入站响应,请扩展LogginInterceptor,并仅重写transform方法。您可以从originallotstring中检查responseType并忽略它。

 类似资料:
  • 我有一个服务可以把不必要的信息记录到journald上。这个能完全关掉吗? 我试着用log4j完成它。属于该服务但没有帮助的属性

  • 这也许是一个很简单的问题。如何禁用Hikari-CP调试日志?在我的日志文件我有很多这样的消息 在我的日志4jconfig中。xml: 有人能告诉我记录器配置有什么问题吗? 谢谢!

  • 我们正在使用PDFBox进行一些PDF阅读和操作。但是在解析过程中,我收到了一堆这样的消息: 现在我如何禁用这些?因为如果字体被嵌入,这样的消息会在输入的每个字符上输出,因此日志文件变得非常不可用。 现在,更改总体日志级别不是一个选项,因为我需要来自其他组件的语句。 我使用的是Tomcat 5.5、log4j 1.2.16和pdfbox app 1.6.0 这是我的log4j配置文件: 编辑 修改

  • 问题内容: 我有一个使用Docker compose启动的Web应用程序,我想禁用所有日志记录(或者至少将其打印到syslog而不是文件中)。 当我的Web应用程序运行时,它可以在启动时快速生成一个11GB的日志文件,因此这会非常快地耗尽我的磁盘空间。 我知道普通docker 的run命令都有日志选项,但是在Docker Compose中,我使用 Docker组成 在应用程序文件夹中启动我的应用程

  • 问题内容: 我想将所有传入和传出请求记录到一个特定的日志文件中。但是,我通过以下配置获得的只是控制台输出。怎么了 log4j2.xml: src / main / resources / META-INF / cxf / org.apache.cxf.Logger: 问题答案: 解决方法是,我现在使用和桥依赖。

  • 当我在conf文件的虚拟主机部分中没有指定日志文件时,日志会写入httpd中指定的文件中。conf(=访问日志)。日志条目如下所示: SOMEIP--[22/Jan/2013:18:34:08 0100]“GET/HTTP/1.1”200 1752-“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.17(KHTML,比如Gecko)Chrome/S