2012-02-24 19 views
6

目前我正在使用BUILD_LOG_REGEXJenkins可編輯電子郵件信息以通過電子郵件獲取錯誤日誌。但是我收到了很多垃圾,我想過濾掉這些錯誤,並且希望過濾出來的錯誤日誌盡善盡美。任何幫助?我將如何過濾Jenkins-email-ext,BUILD_LOG_REGEX中的錯誤?

+0

在錯誤日誌行中是否有一些常用的字符串來基於你的正則表達式?如果沒有,你可以添加一個嗎?你能提供一個例子,你正在使用哪種類型的正則表達式,哪種類型的日誌行應該被捕獲,哪種不是? – 2012-02-25 11:19:17

+0

Hey Juuso,我現在可以過濾一種錯誤。但我想過濾不止一種錯誤。例如,錯誤日誌可能是Error:(或)[Error](或)Failed:等等格式。我如何在BUILD_LOG_REGEX中創建或設置條件? – user1048613 2012-02-27 18:33:50

回答

8

你的問題是非特定的。正如Juuso Ohtonen在評論中指出的那樣,你的高度依賴於日誌中通常會發現的內容。下面是我們在我們的工作之一,用一個例子,它是比較通用的(如果不說簡約):

${BUILD_LOG_REGEX, regex="^.*?BUILD FAILED.*?$", linesBefore=0, linesAfter=10, maxMatches=5, showTruncatedLines=false, escapeHtml=true} 

我建議如下:創建一個記錄包含錯誤類型的一些文字工作你會遇到(你可能只是將一些文本文件放在作業的工作區中),然後在插件中使用Java正則表達式模式 - java.util.regex.Pattern - 直到獲得期望的結果。請確保您發送從作業的電子郵件只給自己:)

要使用自定義HTML - 這裏是從插件的內容令牌參考報價:

${JELLY_SCRIPT, template} - Custom message content generated from a Jelly script 
    template. There are two templates provided: "html" and "text". Custom Jelly templates 
    should be placed in $JENKINS_HOME/email-templates. When using custom templates, the 
    template filename without ".jelly" should be used for the "template" argument. 
    template - the template name. Defaults to "html". 

,您可以直接使用默認的模板你的出發點位於

$JENKINS_HOME/plugins/email-ext/WEB-INF/classes/hudson/plugins/emailext/templates/html.jelly 
+0

我給你一些關於我的日誌文件的例子。那麼在這種情況下,唯一的錯誤日誌(不同類型的錯誤日誌): 案例:1 錯誤:文件夾不匹配 - 請查看以下文件: =============== ================================================== ============ 刪除:\ foo2.cs 刪除:\ WorkflowsHighAvailabilityApp \應用\ WorkflowsHighAvailabilityApp.cs 案例:2 – user1048613 2012-02-27 18:22:58

+0

我的情況是這樣的:$ {BUILD_LOG_REGEX,正則表達式=」錯誤:「,linesBefore = 0,linesAfter = 5,showTruncatedLines = false}。此過濾器僅過濾錯誤:,但我想過濾錯誤,有許多種類,如[錯誤] /失敗:等。有什麼建議嗎? – user1048613 2012-02-27 18:35:54

+0

BUILD_LOG_REGEX使用'java.util.regex.Pattern'正則表達式:http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html – 2012-02-27 19:11:11