我试图通过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正在使用www.example.com文件:
org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/share/tomcat8/conf/logging.properties
还有什么需要我做的吗?
4条答案
按热度按时间5rgfhyps1#
“logging.properties“是Java Util Logging(JUL)的配置文件,JUL是与Log4J不同的框架。您可以尝试在 * a类路径的根**中创建Log4J配置文件“log4j.properties”,并插入上面的代码:“警告”。
hgncfbus2#
按标记
也许我应该说得更清楚些:在SDK中,log4j不是控制日志记录所必需的。SDK使用Apache Commons Logging,正如我已经提到的,这是一个行业标准。Commons Logging只是底层日志记录实现的一个调度层,这样客户就可以插入任何兼容的日志记录框架并使其工作。我在示例中使用log4j是因为它是最常用的一个。因此最有可能在这个公共论坛上提供帮助。
如果您的日志系统支持Commons Logging,那么您已经知道如何配置它。如果它不支持,那么您可以通过向JVM传递适当的命令行参数来完全关闭Commons Logging,就像我上面的回答一样。如果由于某种原因您不能为您的应用程序更改java命令行,那么您可以在Main类中使用以下代码片段,达到同样的效果:
再一次,要绝对清楚:SDK不需要log4j。不幸的是,由于所有底层日志实现的配置都不同,这意味着我们无法告诉您如何准确地配置日志,除非我们知道您的应用程序使用哪个实现。因此,我们在示例中经常使用log4j语法。
有关Apache Commons Logging如何工作以及如何配置它的更多信息,请阅读:
http://commons.apache.org/logging/guide.html
ttcibm8c3#
我也遇到了同样的问题,实际上以上都没有帮助。
创建logback.xml并将其放在具有以下配置的类路径中已修复该问题:
希望对其他人有帮助。
yvt65v4c4#
如果您使用Logback而不是Log4J或Java14日志记录,请在logback.xml中放置以下内容:
若要指定外部logback.xml并使用Sping Boot
或者如果您不是
Logback configuration via jvm argument