日志填满了httpclient.wire.content转储。我怎么能把它关掉?

时间:2010-05-05 03:11:58

标签: java apache tomcat log4j catalina

我的catalina日志充满了大量的陈述,如:

/logs/catalina.out:2010-05-05 02:57:19,611 [Thread-19] DEBUG httpclient.wire.content - >> "[0x4]
[0xc][0xd9][0xf4][0xa2]MA[0xed][0xc2][0x93][0x1b][0x15][0xfe],[0xe]h[0xb0][0x1f][0xff][0xd6][0xfb]
[0x8f]O[0xd4][0xc4]0[0xab][0x80][0xe8][0xe4][0xf2][\r]I&[0xaa][0xd2]BQ[0xdb](zq[0xcd]ac[0xa8]

永远不断。

我搜索了tomcat和apache中的每个配置文件,以查找声称按此处所述启用此语句的语句:

http://hc.apache.org/httpclient-3.x/logging.html

我没有看到此日志记录已启用的位置。没有其他.war我部署了这个。应用程序中的log4j配置块没有这样做。

我还尝试用这样的语句将其关闭:

org.apache.commons.httpclient.wire=SEVERE

org.apache.commons.httpclient.wire.content=SEVERE

httpclient.wire.content=SEVERE

在我的tomcat / conf / logging.properties文件中,并没有阻止它

我正在使用S3库来获取可能是这些的源代码的grails。但是当我在我的开发机器上运行这个应用程序时(在开发和部署配置中),我没有看到它。

还有一个相关的问题:我什么时候想要使用这些“电线日志?”

3 个答案:

答案 0 :(得分:8)

对于Slf4J:

<dependencies>
    <!-- LOGGING -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.5.9-RC0</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>0.9.17</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.9-RC0</version>
    </dependency>
</dependencies>

将logback.xml放在类路径中,其中包含以下内容:

<configuration>
    <!-- LOGBACK logging config file, see http://logback.qos.ch/manual/joran.html -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!-- http://logback.qos.ch/manual/layouts.html#ClassicPatternLayout -->
            <Pattern>%-5level %msg [%logger{16} %d{HH:mm:ss}]%n</Pattern>
        </layout>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
    <logger name="org.apache" level="WARN" />
    <logger name="org.apache.axis2" level="WARN" />
    <logger name="org.apache.axiom" level="WARN" />
    <logger name="httpclient.wire" level="WARN" />
</configuration>

答案 1 :(得分:1)

您的Tomcat common / lib中是否还有其他日志库? (即SLF4J,Logback,Log4J等)

如果是,您可能还想配置相应的日志记录配置文件。

答案 2 :(得分:0)

这是Tomcat 8.5.1的简单答案-目前已在Centos上解决了该问题。像许多人一样,我在此上浪费了很多时间。 httpclient内置了日志记录,因此您无法使用log4j或slf4j-对其进行修复,此处提供了答案。 如果不包括其他日志记录系统,则适用。

[http://tomcat.apache.org/tomcat-8.5-doc/logging.html][1]

创建一个logging.properties文件并放置在/ src / main / resources中-以便将其部署到WEB-INF / classes(该示例将默认的FINE更改为WARN

要放置在Web应用程序内的WEB-INF / classs中的servlet-examples Web应用程序的示例logging.properties:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

org.apache.juli.FileHandler.level = WARNING
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = ${classloader.webappName}.

java.util.logging.ConsoleHandler.level = WARNING
java.util.logging.ConsoleHandler.formatter = java.util.logging.OneLineFormatter