如何使用AWS Java SDK禁用请求级别日志记录?

时间:2015-09-07 12:41:56

标签: java tomcat amazon-web-services logging aws-sdk

我正在尝试在Linux上使用Tomcat 8禁用AWS Java SDK的请求级别日志记录。这是tomcat 8的全新安装,我的测试servlet(可以工作)只是打印到标准输出,默认情况下输出到/var/log/tomcat8/catalina.out

我想通过AWS SDK禁用- Sending Request...之类的请求级别日志记录,因此我尝试将以下内容添加到/usr/share/tomcat8/conf/logging.properties的日志记录配置中:

log4j.logger.com.amazonaws = WARN
log4j.logger.org.apache.http.wire = WARN
log4j.logger.com.amazonaws.request = WARN

...就像docs say here一样,但它仍在进行详细的记录。我的tomcat启动信息显示正在使用logging.properties文件:

org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/share/tomcat8/conf/logging.properties  

还有什么我需要做的吗?

4 个答案:

答案 0 :(得分:1)

" logging.properties"是Java Util Logging(JUL)的配置文件,是一个与Log4J不同的框架。您可以尝试创建Log4J配置文件" log4j.properties "在类路径的根中插入上面的代码:" log4j.logger.com.amazonaws = WARN"

答案 1 :(得分:1)

马克

也许我应该更清楚:不需要log4j来控制SDK中的日志记录。 SDK使用Apache Commons Logging,正如我已经提到的,这是一个行业标准。 Commons Logging只是底层日志记录实现的调度层,因此客户可以插入任何兼容的日志记录框架并使其工作。我在我的示例中使用了log4j,因为它是最常用的一个,因此最有可能在这个公共论坛中提供帮助。

如果您的日志记录系统与Commons Logging一起使用,那么您已经知道如何配置它。如果它没有,那么可以通过将适当的命令行参数传递给JVM来完全关闭Commons Logging,就像我上面的响应一样。如果由于某种原因您无法更改应用程序的java命令行,那么您可以在Main类中使用以下代码段,效果相同:

static {
      System.setProperty("org.apache.commons.logging.Log",
                         "org.apache.commons.logging.impl.NoOpLog");
   }

再次,绝对清楚:SDK不需要log4j。遗憾的是,由于所有底层日志实现的配置都不同,这意味着除非我们知道您的应用程序使用哪种实现,否则我们无法准确地告诉您如何配置日志记录。出于这个原因,我们经常在示例中使用log4j语法。

有关Apache Commons Logging如何工作以及如何配置的更多信息,请阅读:

http://commons.apache.org/logging/guide.html

答案 2 :(得分:1)

我遇到了同样的问题,实际上以上都没有帮助。

创建一个 logback.xml 并将其放在类路径上,并使用以下配置修复它:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="org.apache" level="ERROR" />
    <logger name="httpclient" level="ERROR" />
</configuration>

希望对大家有所帮助。

答案 3 :(得分:0)

如果您使用的是 Logback,而不是 Log4J 或 Java14 日志记录,请将以下内容放入 logback.xml:

<configuration>
    ...

    <logger name="org.apache.http.wire" level="WARN"/>
    <logger name="com.amazonaws" level="WARN"/>
    ...    

指定外部 logback.xml 并使用 Spring Boot

-Dlogging.config="C:\logbacs\logback.xml"

或者如果你不是

-Dlogback.configurationFile=file:///C:/logbacs/logback.xml

Logback configuration via jvm argument

相关问题