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

How to disable request-level logging with the AWS Java SDK?

我正在尝试通过 AWS Java SDK 在 Linux 上使用 Tomcat 8 禁用请求级日志记录。这是 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  

我还需要做什么吗?

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

马克

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

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

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

我遇到了同样的问题,上面的 none 实际上有帮助。

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

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

希望对大家有所帮助。

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

<configuration>
    ...

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

指定外部 logback.xml 并使用 Spring 引导

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

或者如果你不是

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

Logback configuration via jvm argument