【发布时间】:2017-09-16 15:14:49
【问题描述】:
我正在启动一个新的 Java 应用程序并准备使用 log4j2(我是 log4j2 的新手) 我的应用程序记录正确,但我想摆脱从 org.apache.http 收到的所有警告
根据https://hc.apache.org/httpcomponents-client-ga/logging.html,我应该能够通过 log4j 进行控制(尽管他们只给出了 log4j 而不是 log4j2 的示例)。
我的日志文件有类似的条目
2017 年 9 月 16 日上午 9:01:32 org.apache.http.client.protocol.ResponseProcessCookies processCookies 警告:无效的 cookie 标头:“Set-Cookie: visid_incap_661002=+HabQKJHRbKzy; expires=2018 年 9 月 16 日星期日 11:41:58 GMT;路径=/;域=.mydomain.com”。 无效的“过期”属性:2018 年 9 月 16 日星期日 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>
感谢您的帮助
【问题讨论】:
-
您提供的日志与配置文件中的任一模式都不匹配。你能给出正确的日志吗?或者,正确的配置文件?
-
你好 sazzad,我忘记在示例中添加的一件事是我的应用程序(ntapp,我已将其添加到示例中)。这个 log4j2.xml 在类路径中,我知道应用程序正在正确使用它,因为我在控制台中得到了什么。当我运行应用程序时,我也会进入控制台,消息如来自 http 的描述中所示,这就是我想要摆脱的谢谢
-
好吧,IF 你提供的日志正是你得到的,那么它不是通过 log4j2 完成的(因为模式不匹配)。因此,我认为您无法通过 log4j2 压制。
标签: java log4j2 apache-commons apache-commons-httpclient apache-commons-logging