我开始一个新的java应用程序并打算使用log4j2(我是log4j2的新手) 我的应用程序记录正确,但我想获得摆脱我得到的所有警告org.apache.http使用log4j2减少org.apache.http.client的日志噪音
根据https://hc.apache.org/httpcomponents-client-ga/logging.html我应该能够通过log4j控制(虽然他们只给出了log4j的例子,而不是log4j2)。
我的日志文件有一个像
项目2017年9月16日上午09时01分32秒 org.apache.http.client.protocol.ResponseProcessCookies processCookies 警告:无效的饼干头:“设置Cookie : visid_incap_661002 = + HabQKJHRbKzy; expires = Sun,2018年9月16日11:41:58 GMT; path = /; Domain = .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
hello sazzad, 有一件事我忘了在例子中是我的应用程序(ntapp和我已经将它添加到示例)。 这个log4j2.xml是在类路径中,我知道应用程序正确使用它,因为我在控制台中得到了什么。 我也进入控制台,当我运行应用程序,从http描述消息,这就是我想摆脱 谢谢 – randy
好吧,**如果**你提供的日志是完全正确的你会得到什么,那么它不是通过log4j2完成的(因为模式不匹配)。所以,我认为你不会被log4j2压制。 – sazzad