7

我的 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 文件中,但这并没有阻止它

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

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

4

3 回答 3

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>
于 2012-02-20T11:05:17.120 回答
1

您的 Tomcat 公共/库中是否有任何其他日志记录库?(即 SLF4J、Logback、Log4J 等)

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

于 2010-05-05T04:19:26.857 回答
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

servlet-examples web 应用程序的示例 logging.properties 被放置在 web 应用程序内的 WEB-INF/classes 中:

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
于 2020-03-19T12:32:42.713 回答