2014-09-29 167 views
0

下面的問題對許多人來說可能看起來很愚蠢,因爲它應該有一個簡單的解決方案,但我是Spring框架的初學者,並且我一直在搜索和測試許多沒有成功的方法。Spring日誌記錄和application.properties

所以,我需要實現基於Spring的Web服務日誌記錄。 Maven用於依賴關係,具有spring-boot-starter-ws依賴關係,而不是整個starter-web啓動器。

我嘗試了log4j,通過添加一個依賴和配置文件,它確實會生成一個日誌文件,但僅用於記錄器本身的初始化,並且沒有關於何時使用服務的日誌記錄,儘管log4j處於TRACE水平。 我也嘗試了使用logback,通過添加logback.xml文件,並添加starter-logging依賴項,但也創建空的日誌文件,其中沒有任何內容。

在Spring啓動文檔中,提到了application.properties文件。所以我在WEB-INF中創建了這個項目,並把logging.level.org.springframeworklogging.path條目。但仍然沒有創建日誌文件。

我不想記錄自己的消息,我只想記錄Spring自身生成的事件。而且我也沒有主要方法,只有Web服務的端點,如果其中任何一個可能是相關的。所以我需要的是儘可能簡單的日誌記錄,可能不需要添加太多的依賴關係,並將Spring消息檢索到日誌中。有人能告訴我我做錯了什麼嗎?

回答

-1

不知道logging.level.org.springframework and the logging.path是否適用於彈簧靴。你可以試着將你的logback.xml文件,並直接向application.properties中DIR resources貼+這logback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration scan="true" scanPeriod="30 seconds"> 
<include resource="org/springframework/boot/logging/logback/base.xml"/> 
<logger name="org.springframework" level="DEBUG" appender-ref="FILE"/> 
</configuration> 

這應該登錄控制檯和/ tmp目錄(如Linux)的目錄。

//更新:

手動設置在哪裏寫日誌,你可以這樣做(我基本上什麼這是進口base.xml的內部減小):

<appender name="FILE_APPENDER" 
    class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <encoder> 
     <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%t] --- %-40.40logger{39} : %m%n%wex</pattern> 
    </encoder> 
    <file>C://yourDir</file> 
</appender> 

,然後改變

<logger name="org.springframework" level="DEBUG" appender-ref="FILE"/> 

到:

<logger name="org.springframework" level="DEBUG" appender-ref="FILE_APPENDER"/> 
+0

對不起,但它是Windows,我不確定它在哪裏保存日誌,我也不知道如何自己設置文件夾。有什麼簡單的標籤,我應該添加設置文件的位置? – stackoverflowthebest 2014-09-29 10:13:50

+0

不錯,謝謝,它現在工作。我猜這個文件格式不正確。 – stackoverflowthebest 2014-09-29 13:21:40

1

logback是Spring Boot使用的默認日誌記錄實現(我假設你使用spring引導來創建jar並運行它!)。基本上,你不需要做任何事情記錄已經由你包括的初學者處理。

Spring提供了一個默認的logback.xml,它打開日誌記錄,因爲Spring框架在INFO上。

如果你想覆蓋這個,只需創建一個與默認內容相同的logback.xml文件,並將彈簧的記錄器放在DEBUG或TRACE上。不知道你是否真的想把所有東西都追蹤到,除非你想要一個性能較低的應用程序。

至於你在做什麼錯,是你可能做得太多,思維複雜。

0

我在WEB-INF

與你已經嘗試過的唯一的問題創造了這個。它必須放在classpath中(*如果你有一個普通的構建配置,把它放在「src/main/resources」中,如果你由於某種原因手動構建一個WAR,則放在「WEB-INF/classes」中)。

+0

我正在用Maven構建WAR。然而,它只是通過將其放在'WEB-INF'中。儘管我不確定爲什麼log4j不起作用,但我現在不會再嘗試。 – stackoverflowthebest 2014-09-30 10:03:55