2014-10-20 86 views
0

我在OS X 10.10的Tomcat 7.0.56下運行最新版本的Jenkins(1.584)。我們安裝了一些插件。我看到一個XML日誌文件(java0.log)被寫入Tomcat運行的用戶的主目錄。樣本記錄:控制詹金斯外部記錄?

<record> 
    <date>2014-10-20T09:42:19</date> 
    <millis>1413816139820</millis> 
    <sequence>4283</sequence> 
    <logger>svnkit-cli</logger> 
    <level>INFO</level> 
    <class>org.tmatesoft.svn.core.internal.util.DefaultSVNDebugLogger</class> 
    <method>log</method> 
    <thread>56</thread> 
    <message>CLI: executing statement: CREATE TRIGGER nodes_delete_trigger AFTER DELETE ON nodes WHEN OLD.checksum IS NOT NULL BEGIN UPDATE pristine SET refcount = refcount - 1 WHERE checksum = OLD.checksum; END;</message> 
</record> 

這不僅僅是svnkit的記錄錯誤。我也看到了在該領域的以下值:

javax.jmdns.impl.DNSIncoming 
javax.jmdns.impl.DNSIncoming$MessageInputStream 
javax.jmdns.impl.constants.DNSRecordType 
javax.jmdns.impl.constants.DNSRecordClass 
hudson.triggers.SCMTrigger 
hudson.scm.SubversionSCM 
hudson.plugins.jira.JiraChangeLogAnnotator 
hudson.model.UpdateSite 
jenkins.model.lazy.LazyBuildMixIn 

我想知道的是如何爲這個日誌文件的指定位置(而不是僅僅〜/ java0.log),以及如何控制日誌級別,以便只記錄「ERROR」及以上。

什麼記錄這裏正在使用,並且我需要以修改其行爲要設置的Java屬性?這是我需要設置Tomcat範圍(例如在bin/setenv.sh中)還是隻能爲Jenkins Web應用程序指定的內容?

回答

0

Tomcat的日誌記錄屬性都包含在${catalina.base}/conf/logging.properties。這些屬性適用於Tomcat和Tomcat中包含的任何應用程序,除非在應用程序中配置了特定的日誌記錄解決方案。 Per Hudson/Jenkins,「系統日誌捕獲與Hudson相關的java.util.logging輸出的輸出。」基於此,看起來java.util.logging.consoleHandler是你想要修改的。

在使用log4j的某些情況下,日誌記錄屬性將位於名爲log4j.xml的文件中,但格式相似且易於理解。

這裏的默認logging.properties文件,以供參考:

############################################################ 
# Handler specific properties. 
# Describes specific configuration info for Handlers. 
############################################################ 

1catalina.org.apache.juli.FileHandler.level = FINE 
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
1catalina.org.apache.juli.FileHandler.prefix = catalina. 

2localhost.org.apache.juli.FileHandler.level = FINE 
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
2localhost.org.apache.juli.FileHandler.prefix = localhost. 

3manager.org.apache.juli.FileHandler.level = FINE 
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
3manager.org.apache.juli.FileHandler.prefix = manager. 

4host-manager.org.apache.juli.FileHandler.level = FINE 
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 
4host-manager.org.apache.juli.FileHandler.prefix = host-manager. 

java.util.logging.ConsoleHandler.level = FINE 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler 

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler 
+0

我想這可能是別的東西。 java0.log文件出現在構建用戶的主目錄中,而不是在$ {catalina.base}中。 – jph 2014-10-23 16:17:30

+0

現在我正在考慮它,它看起來可能與SVN有關,這取決於日誌文件中的文本。如果你的Jenkins實例正在調用SVN命令,那麼這些命令在shell中發生,而不是在Jenkins中。我會看你的SVN配置瞭解更多信息。 – LegendaryDude 2014-10-23 20:35:29