Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用AWS Java SDK禁用请求级日志记录?_Java_Tomcat_Amazon Web Services_Logging_Aws Sdk - Fatal编程技术网

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

如何使用AWS Java SDK禁用请求级日志记录?,java,tomcat,amazon-web-services,logging,aws-sdk,Java,Tomcat,Amazon Web Services,Logging,Aws Sdk,我试图在Linux上使用Tomcat 8禁用AWS Java SDK的请求级日志记录。这是一个新安装的tomcat8,我的测试servlet(工作正常)只打印到标准输出,默认情况下,标准输出到/var/log/tomcat8/catalina.out 我想通过AWS SDK禁用请求级日志记录,如-发送请求…,因此我尝试在/usr/share/tomcat8/conf/logging.properties中将以下内容添加到我的日志记录配置中: log4j.logger.com.amazonaws

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

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

log4j.logger.com.amazonaws = WARN
log4j.logger.org.apache.http.wire = WARN
log4j.logger.com.amazonaws.request = WARN
…就像,但它仍在进行详细的日志记录。我的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使用ApacheCommons日志记录,正如我已经提到的,这是一个行业标准。Commons日志只是底层日志实现的调度层,因此客户可以插入任何兼容的日志框架并使其工作。我在示例中使用了log4j,因为它是最常用的,因此在这个公共论坛中最有可能有用

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

static {
      System.setProperty("org.apache.commons.logging.Log",
                         "org.apache.commons.logging.impl.NoOpLog");
   }
再说一次,非常清楚:SDK不需要log4j。不幸的是,由于所有底层日志实现的配置都不同,这意味着我们无法确切地告诉您如何配置日志,除非我们知道您的应用程序使用哪个实现。因此,我们在示例中经常使用log4j语法

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


我也遇到了同样的问题,但上述问题实际上都没有帮助

创建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"/>
    ...    
或者如果你不是

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

有配置log4j的文档。您还必须设置
log4j.logger.org.apache.http.wire=WARN
-Dlogback.configurationFile=file:///C:/logbacs/logback.xml