使用 log4j2 时减少 org.apache.http.client 的日志噪音
Reduce the logging noise from org.apache.http.client when using log4j2
我正在启动一个新的 java 应用程序并打算使用 log4j2(我是 log4j2 的新手)
我的应用程序记录正确,但我想摆脱从 org.apache.http
收到的所有警告
根据 https://hc.apache.org/httpcomponents-client-ga/logging.html 我应该能够通过 log4j 进行控制(尽管他们只给出了 log4j 而不是 log4j2 的例子)。
我的日志文件有类似
的条目
Sep 16, 2017 9:01:32 AM
org.apache.http.client.protocol.ResponseProcessCookies processCookies
WARNING: Invalid cookie header: "Set-Cookie:
visid_incap_661002=+HabQKJHRbKzy;
expires=Sun, 16 Sep 2018 11:41:58 GMT; path=/; Domain=.mydomain.com".
Invalid 'expires' attribute: Sun, 16 Sep 2018 11:41:58 GMT
我正在尝试抑制来自 org.apache.http.client 的所有警告
有些文章对客户说实际上是在使用 org.apache.http.wire ,但我尝试过的任何东西似乎都不起作用
这是我的log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<RollingFile name="fileLogger" fileName="${basePath}/app-info.log" filePattern="${basePath}/app-info-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%L][%-5level] %d{yyyy-MM-dd HH:mm:ss} [%t] %c{1} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<logger name="org.apache.http.client" level="ERROR" />
<logger name="org.apache.http.wire" level="ERROR" />
<logger name="org.apache.commons.httpclient" level="ERROR" />
<logger name="ntapp" level="debug" additivity="true">
<appender-ref ref="fileLogger" level="INFO" />
</logger>
<Root level="INFO" additivity="false">
<appender-ref ref="console" />
</Root>
</Loggers>
</Configuration>
感谢您的帮助
所以这篇文章似乎是解决我的问题的正确方法,确实如此。
仍然想了解为什么我不能通过记录器做到这一点(从 http 客户端的文档看来我应该能够做到)
我正在启动一个新的 java 应用程序并打算使用 log4j2(我是 log4j2 的新手) 我的应用程序记录正确,但我想摆脱从 org.apache.http
收到的所有警告根据 https://hc.apache.org/httpcomponents-client-ga/logging.html 我应该能够通过 log4j 进行控制(尽管他们只给出了 log4j 而不是 log4j2 的例子)。
我的日志文件有类似
的条目Sep 16, 2017 9:01:32 AM org.apache.http.client.protocol.ResponseProcessCookies processCookies WARNING: Invalid cookie header: "Set-Cookie: visid_incap_661002=+HabQKJHRbKzy; expires=Sun, 16 Sep 2018 11:41:58 GMT; path=/; Domain=.mydomain.com". Invalid 'expires' attribute: Sun, 16 Sep 2018 11:41:58 GMT
我正在尝试抑制来自 org.apache.http.client 的所有警告 有些文章对客户说实际上是在使用 org.apache.http.wire ,但我尝试过的任何东西似乎都不起作用
这是我的log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<RollingFile name="fileLogger" fileName="${basePath}/app-info.log" filePattern="${basePath}/app-info-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%L][%-5level] %d{yyyy-MM-dd HH:mm:ss} [%t] %c{1} - %msg%n" />
</Console>
</Appenders>
<Loggers>
<logger name="org.apache.http.client" level="ERROR" />
<logger name="org.apache.http.wire" level="ERROR" />
<logger name="org.apache.commons.httpclient" level="ERROR" />
<logger name="ntapp" level="debug" additivity="true">
<appender-ref ref="fileLogger" level="INFO" />
</logger>
<Root level="INFO" additivity="false">
<appender-ref ref="console" />
</Root>
</Loggers>
</Configuration>
感谢您的帮助
所以这篇文章似乎是解决我的问题的正确方法,确实如此。
仍然想了解为什么我不能通过记录器做到这一点(从 http 客户端的文档看来我应该能够做到)