启用 Log4J2 + Apache HttpClient 的调试日志记录

2023-11-26

我试图激活我的 Apache HttpClient 的调试日志记录,但无法使其工作(根本没有获得与 HttpClient 相关的日志输出)。

这是我目前使用的 log4j2 配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
    <appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <RollingFile name="RollingRandomAccessFile" fileName="logs/test.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>
                    %d %p %c{1.} [%t] %m%n
                </Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>

        <Async name="async">
            <AppenderRef ref="RollingRandomAccessFile" />
        </Async>
    </appenders>
    <loggers>
        <logger name="org.apache.http.wire" level="debug" />
        <logger name="org.apache.http.client" level="debug" />
        <logger name="org.apache.xerces.parsers.SAXParser" level="warn" />
        <logger name="org.hibernate" level="warn" />
        <root level="trace">
            <appender-ref ref="console" />
            <appender-ref ref="async" />
        </root>
    </loggers>
</configuration>

例如,将休眠级别从警告更改为调试效果非常好。

我使用这些库:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>fluent-hc</artifactId>
    <version>4.2.6</version>
    </dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.2.6</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.2.5</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient-cache</artifactId>
    <version>4.2.6</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.2.6</version>
</dependency>

Log4J2

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.0-beta9</version>
</dependency>

有人有想法吗?我已经尝试过不同的包名称,例如

httpclient.wire
httpclient.wire.header
httpclient.wire.content

还有一些,但似乎没有任何作用......


我假设 httpcomponents 在内部使用 log4j-1.2。 Log4j2 提供了一个适配器,可将使用 1.2 API 的应用程序的调用路由到新的 2.0 实现。

要启用此功能,您只需将 log4j-core 和 log4j-1.2-api jar 添加到类路径中。 (您当前的 Maven 依赖项只有 log4j-api,这是新的 2.0 API。) 也可以看看http://logging.apache.org/log4j/2.x/faq.html .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启用 Log4J2 + Apache HttpClient 的调试日志记录 的相关文章

随机推荐

  • docker 的 Cron 容器 - 它们实际上是如何工作的?

    我已经使用 docker 几个月了 并且正在致力于对各种不同的服务器映像进行 docker 化 一个一致的问题是许多服务器需要运行 cron 作业 网上有很多关于这个的讨论 包括 Stackoverflow 但我并不完全理解它的机制 目前
  • Laravel 4 虚拟主机和 mod 重写设置

    我已经尝试了几个小时来安装 Laravel 4 并使虚拟主机和路由正常工作 但到目前为止我一直不走运 我提到我正在这样做Windows 7的机器和WAMP 我将描述我已经做过的事情 我已经启用了 rewrite module 使用以下内容更
  • 平台模块之间是否允许循环?

    这是模块声明java rmi module module java rmi requires java base requires java logging exports java rmi activation exports com s
  • 反射类获取任何对象的所有属性

    我需要创建一个函数来获取对象 包括子对象 的所有属性 这是为了我的错误日志记录功能 现在我的代码总是返回 0 个属性 请让我知道我做错了什么 谢谢 public static string GetAllProperiesOfObject o
  • 沙盒环境中 FinderSync 扩展的读写访问权限

    场景 用户右键单击 Finder 中的目录并找到自定义菜单项 单击该项目将告诉我的应用程序打开一个窗口 用户可以在其中完成工作 完成后 需要将文件写入他通过右键单击选择的文件夹 问题 我现在一切都开始工作了 除了最后一部分 扩展程序无法写入
  • Django:如何在通用创建视图上设置隐藏字段?

    我正在运行 Django 1 6 x 为了扩展我的用户 我添加了另一个存储数据的模型 class UserProfile models Model user models ForeignKey User height models Inte
  • 如何在 recyclerview viewholder 中处理许多不同的视图类型

    如果我有 50 种视图怎么办 我的适配器中应该有 50 个静态内部类吗 根据这个答案 yes 我的第一个想法是将每个视图持有者内部类移动到一个单独的公共类中 但它们必须是静态的 那么将每个都封装成一个公共类 使内部类静态 有更好的选择吗 编
  • 使用一个 NPM 命令启动 React-create-app 和 Electron.js

    我有简单的定制入门包react create app and Electron js 我已添加到 package json 文件 scripts electron electron start cross env BROWSER none
  • Rails:使用 Gmail API 发送电子邮件,附件仅返回编码文件而不返回

    我正在尝试使用 gmail API 发送电子邮件 我的 Ruby 代码如下所示 无需附件即可正常运行 client google client user id token Token find by user id user id acce
  • Java HashMap 性能优化/替代方案

    我想创建一个大的 HashMap 但put 性能不够好 有任何想法吗 欢迎其他数据结构建议 但我需要 Java Map 的查找功能 map get key 就我而言 我想创建一个包含 2600 万个条目的地图 使用标准 Java HashM
  • 如何在 C++ 中从文本文件的开头删除字符“”?

    我正在尝试读取一个文本文件 对于每个单词 我会将它们放入二叉搜索树的节点中 但是 第一个字符始终读作 第一个单词 例如 如果我的第一个单词是 This 那么插入到我的节点中的第一个单词是 This 我一直在论坛上寻找修复它的解决方案 有一篇
  • 可见性:隐藏和显示:无之间的性能差异

    我想简化 jQuery Backbone js Web 应用程序中的事情 其中一种简化是我的菜单和对话框小部件的行为 之前我在开始时创建了菜单的 div 框并使用隐藏它们display none opacity 0 当我需要菜单时 我将其样
  • Django 是同步还是异步?

    Django 是同步还是异步 我想知道 Django 框架是同步的还是异步的 我听说过面试问题 他们询问你正在使用的框架是同步还是异步 所以我想知道它的含义同步和异步在网络开发方面 Django 本身是同步的 每个 HTTP 请求都将完全同
  • 如何处理const对象中非常量引用成员的初始化?

    假设你有课 class C int i public C int v i v void method const this method does not change i void method this method changes i
  • 让音乐应用程序在后台、iOS 和 Android 中保持活力?

    我正在使用 Flutter 构建一个音乐播放应用程序 它帮助我作为一个开发人员为两个平台构建一次应用程序 然而 我在这两个平台上分别遇到了一些问题 尽管我已经克服了其中一些障碍 但我就是无法找出一个主要的错误 问题 这些错误 问题只会使制作
  • 使用Spring Boot处理MultipartException并显示错误页面

    我使用 Spring Boot 设置了一个非常简单的文件上传 我想知道是否有一种简单的方法可以在超过最大文件大小时显示错误页面 我上传了一个非常简单的示例来说明我想要实现的目标在 github 上 基本上 这个想法是在全局 Spring 异
  • 使用 Google Webfonts 时 Outlook 中的 CSS 字体堆栈替换问题

    在 HTML 电子邮件中使用 Google Webfonts 时 我在 Outlook 2007 2010 等 中遇到了字体替换问题 这些问题在合并 webfonts 之前不会发生 它会忽略字体堆栈并直接转到 Times 尽管使用内联后备字
  • Android 10 中访问 /proc/net/arp ARP 表的权限被拒绝

    使用 ARP 表 我们可以访问 Android 9 及更早版本中热点连接设备的 IP 和 MAC 现在 从 Android 10 开始 同样的权限被拒绝 请建议我如何在 Android 10 中访问已连接设备的 IP 和 MAC 地址 下面
  • Scipy 的优化曲线拟合限制

    有什么方法可以为 Scipy 的优化曲线拟合提供限制吗 我的例子 def optimized formula x m 1 m 2 y 1 y 2 ratio 2 return log x 0 m 1 m 2 1 x 1 max age 1
  • 启用 Log4J2 + Apache HttpClient 的调试日志记录

    我试图激活我的 Apache HttpClient 的调试日志记录 但无法使其工作 根本没有获得与 HttpClient 相关的日志输出 这是我目前使用的 log4j2 配置