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

对spring ws soap请求进行日志格式化

钱毅
2023-03-14

我的logback.xml:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="error">
        <appender-ref ref="STDOUT" />
    </root>

    <logger name="org.springframework.ws" level="trace" />
</configuration>

如何启用此功能

共有1个答案

符国安
2023-03-14

大多数SOAP库,包括Spring-WS,在发送消息之前不对消息进行格式化。换行符、制表符和空格与接收方无关,它节省了一些带宽。

话虽如此,您可能需要添加一个自定义的ClientInterceptor来拦截每个消息。您应该实现HandleRequest(MessageContext)和/或HandleResponse(MessageContext)(取决于您是发送还是接收消息)。

要获得原始XML,请编写如下代码:

final ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
    message.writeTo(baos);
} catch (IOException ioe) {
    log.error("Could not intercept payload", ioe);
    throw new WebServiceIOException("Could not intercept payload", ioe);
}
final String payload = baos.toString("UTF-8");
 类似资料:
  • Apache日志提供有助于检测服务器常见问题的详细信息。要记录网站的访问日志,必须启用。 apache配置文件中有三个指令,即 - :创建日志文件。 :指定自定义格式。 :创建和格式化日志文件。 指令在apache配置文件中可用,它根据设置参数轮转虚拟主机日志文件。 两种类型的Apache日志格式 通用日志格式 组合日志格式 可以通过编辑apache配置文件来启用它们,即(Debian/ubunt

  • 给定一个带有一个字符串字段的简单protobuf消息: 和打印它的示例代码: 此输出的结果将是: 每个消息(实际上是每个字段)都有“\n”换行符。这显然对伐木工人不利。 用Gson序列化会更糟,因为Gson将序列化生成的许多其他字段... 我们如何将protobuf消息转换为没有换行符的单个字符串?

  • log4j API提供org.apache.log4j.jdbc.JDBCAppender对象,该对象可以将日志记录信息放在指定的数据库中。 JDBCAppender配置 属性 描述 bufferSize 设置缓冲区大小。 默认大小为1。 driver 将驱动程序类设置为指定的字符串。 如果未指定驱动程序类,则默认为sun.jdbc.odbc.JdbcOdbcDriver 。 layout 设置要

  • Apache log4j提供了各种Layout对象,每个对象都可以根据各种布局格式化日志记录数据。 还可以创建一个Layout对象,以特定于应用程序的方式格式化日志记录数据。 所有Layout对象都从Appender对象接收LoggingEvent对象。 然后,Layout对象从LoggingEvent中检索消息参数,并应用适当的ObjectRenderer来获取消息的String表示形式。 布局

  • 我试图在flask应用程序上记录post请求,如下所示: 我这样做是因为我怀疑有时我会在POST上得到一个格式错误的JSON对象。我看到的问题是日志包含一个截断的请求体——它似乎被夹在中间... 我不能放日志摘要,因为它是敏感数据。。为什么请求被截断?我做错了吗? 谢谢

  • 从docker容器中将结构化日志写入journald的最佳方式是什么? 例如,我有一个使用sd_journal_send而不是更改应用程序的应用程序,我尝试通过 -v/var/log/systemd/journal:/var/log/systemd/journal docker journald输出日志记录选项有哪些限制?它似乎不支持应用程序编写不仅仅是消息字段。 -- 所以我发现我需要 C程序可