gpt4 book ai didi

http - 清理来自 apache HttpClient 的响应记录(没有 15 :44:59. 689 [http-nio-8080-exec-4] DEBUG org.apache.http.wire - http-outgoing-0 <<)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:44 28 4
gpt4 key购买 nike

我设法在 HttpClient 上打开完整的调试日志记录。 (使用 logback)我确实记录了所有内容,但在每一行都添加了很多垃圾 header 。我希望日志记录没有任何额外的格式、分号、引号、编码,如下所示:

15:44:59.689 [http-nio-8080-exec-4] DEBUG org.apache.http.wire - http-outgoing-0 << "  <readOnly>false</readOnly>[\n]"
15:44:59.689 [http-nio-8080-exec-4] DEBUG org.apache.http.wire - http-outgoing-0 << " <enabled>false</enabled>[\n]"
15:44:59.689 [http-nio-8080-exec-4] DEBUG org.apache.http.wire - http-outgoing-0 << " <metadata>[\n]"
15:44:59.689 [http-nio-8080-exec-4] DEBUG org.apache.http.wire - http-outgoing-0 << " <name>P[0xc5][0x99]ipoji[0xc5][0xa1]t[0xc4][0x9b]n[0xc3][0xad] denn[0xc3][0xad] d[0xc3][0xa1]vky p[0xc5][0x99]i pobytu v nemocnici n[0xc3][0xa1]sledkem [0xc3][0xba]razu d[0xc3][0xad]t[0xc4][0x9b]te</name>[\n]"

简单地说,如果登录了有效的 xml,我想将整个日志文件 block 复制粘贴到我最喜欢的 xml 编辑器中,然后查看它与网络上的数据完全相同。有没有办法实现这一目标?我可以从 Apache 扩展类。

最佳答案

您尝试修改的日志行似乎是由 org.apache.http.impl.conn.LoggingSessionInputBuffer 类生成的,该类又会调用 org .apache.http.impl.conn.Wire 将传入数据记录到线路日志。

不幸的是,Wire 类在记录的消息中包含小于符号和引号,因此您可以使用 logback 做的最好的事情是在 logback 中使用最小的模式布局。类似xml

<pattern>%m%n</pattern>

应该会产生这样的结果:

 << "  <readOnly>false</readOnly>[\n]"
<< " <enabled>false</enabled>[\n]"
<< " <metadata>[\n]"
<< " <name>P[0xc5][0x99]ipoji[0xc5][0xa1]t[0xc4][0x9b]n[0xc3][0xad] denn[0xc3][0xad] d[0xc3][0xa1]vky p[0xc5][0x99]i pobytu v nemocnici n[0xc3][0xa1]sledkem [0xc3][0xba]razu d[0xc3][0xad]t[0xc4][0x9b]te</name>[\n]"

因为这仍然比您想要的更多,也许更简单的方法是编写一个小的 sed 脚本来获取引用的消息并删除末尾括号中的换行符。

关于http - 清理来自 apache HttpClient 的响应记录(没有 15 :44:59. 689 [http-nio-8080-exec-4] DEBUG org.apache.http.wire - http-outgoing-0 <<),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31270656/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com