2015-09-07 56 views
1

我試圖通過AWS Java SDK與Linux上的Tomcat 8禁用請求級別日誌記錄。這是一個新的tomcat 8安裝,我的測試servlet(它的工作)只是打印到標準輸出,默認爲/var/log/tomcat8/catalina.out如何使用AWS Java SDK禁用請求級日誌記錄?

我想通過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 

還有什麼我需要做什麼?

回答

1

「logging.properties」是Java Util Logging(JUL)的配置文件,witch與Log4J是不同的框架。您可以嘗試在類路徑的根目錄中創建Log4J配置文件「log4j.properties」,並插入上面的代碼:「log4j.logger.com.amazonaws = WARN」。

+0

完美,謝謝。 – RTF

+0

有用於配置log4j的文檔https://docs.aws.amazon.com/java-sdk/latest/developer-guide/java-dg-logging.html。你也必須設置'log4j.logger.org.apache.http.wire = WARN'。 – shobull

1

馬克

也許我應該更清楚了:log4j的,不需要在SDK中控制日誌。 SDK使用Apache Commons Logging,正如我已經提到的那樣,這是一個行業標準。 Commons Logging只是一個基礎日誌實施的調度層,因此客戶可以插入任何兼容的日誌框架並使其工作。我在我的例子中使用了log4j,因爲它是最常用的,所以最有可能在這個公共論壇中有所幫助。

如果您的日誌記錄系統與Commons Logging協同工作,那麼您已經知道如何配置它。如果沒有,那麼可以通過將相應的命令行參數傳遞給JVM來完全關閉Commons Logging,就像我上面的響應一樣。如果由於某種原因,你不能改變Java命令行應用程序,那麼你可以使用下面的代碼片段中的一個主類,以同樣的效果:

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

再次,要絕對明確:SDK不需要log4j。不幸的是,因爲所有的底層日誌實現配置不同,這意味着我們不能告訴你如何配置日誌記錄,除非我們知道你的應用程序使用哪個實現。出於這個原因,我們經常在我們的例子中使用log4j語法。

有關Apache的百科全書登錄如何工作,以及如何配置它的更多信息,請閱讀:

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

相關問題