Skip to end of metadata
Go to start of metadata

Plugin Information

View Log Parser on the plugin site for more information.

Parse the console output and highlight error/warning/info lines.

Description

The log-parser plugin parses the console log generated by the Jenkins build. Parsing the console log allows for the following features:

  • highlighting lines of interest in the log (errors, warnings, information)
  • dividing the log into sections
  • displaying a summary of number of errors , warnings and information lines within the log and its sections.
  • linking the summary of errors and warnings into the context of the full log, making it easy to find a line of interest in the log
  • showing a summary of errors and warnings on the build page

Parsed log example

Summary at build level

This shows a summary of errors and warnings on the build page

The parsed log

This is an example of a parsed log of a build.
It is accessible from the "Parsed Console Output" link on the left side of the build page :



The left side of the report can be expanded to browse the errors/warning/info lines. These lines are links to the full log on the right, where they can be easily located. Clicking on a certain error will bring you right to it on the full log which appears on the right side of the screen. The log is also divided into logical sections (as defined in the parsing rules configuration described below). In the summary section on the left you can see the errors/warnings as they appear in the log sections. This can help understand in what part of the build there is an error/warning. Both summary and log sections are scrollable and expandable.



Configuration

Several parsing options are configured at the global level.

Global Configuration

Parsing rules options

Appears in the global Jenkins configs as section "Console Output Parsing"
Configure pairs of logical names (project, description, etc.) and parsing rule files.
Later on, when a job is configured for log parsing, you will be able to choose one of these configurations to implement as the parsing rules for that job. (See "Job Configuration")



For each parsing rules option, specify :
Parsing rule name - logical name which will be displayed in the job level configuration as an option
Parsing Rules File - A file with the parsing rules implemented in this option. (See "Parsing rules files" to learn more about the syntax of these files.)

Parsing rules files

Format

Each line in the file specifies a level (ok/error/warn/info/start) and a regular expression (based on java.util.regex.Pattern) delimited by slashes ("/") to look for in order to mark the line as matching that level.

  • ok/error/warn
    Used to identify problem lines.
  • info
    These lines are highlighted blue in the report. They are used to create a set of links into the report for quick access to certain sections.
  • start
    Like info lines, they are highlighted blue in the report, and appear in the set of quick access links to the report. In addition, they are used for grouping the list of errors and warnings found in that section.

For example, the following line in the parsing rules file means that a line including the word "ERROR" will be marked as an error line:

error /ERROR/
  • Case insensitive matches
    The notation supports the Java regex embedded flag expression. To perform a case-insensitive match, use (?i) notation.
    Example: to match lines starting with the case-insensitive word 'error', use:
    error /(?i)^error /
    
  • If a line matches several rules, the first one applies.
    So for the following set of rules :
    ok /^javadoc:/
    error /Error/
    
    And the following line in the build log:
    javadoc: Error : could not find something
    
    The line will be considered "ok", and will not be highlighted as an error, since the ^javadoc: pattern is matched first.
  • Lines starting with a '#' character, and blank lines will be ignored to allow comments and spacing.

Example parsing rules file:

ok /not really/

# match line starting with 'error ', case-insensitive
error /(?i)^error /

# list of warnings here...
warning /[Ww]arning/
warning /WARNING/

# create a quick access link to lines in the report containing 'INFO'
info /INFO/

# each line containing 'BUILD' represents the start of a section for grouping errors and warnings found after the line.
# also creates a quick access link.
start /BUILD/

Job Configuration

  1. Go to menu: Jenkins -> job name -> Configure
  2. Go to section : Post-build Actions
  3. Check the "Console output (build log) parsing" checkbox.
  4. "Mark build Unstable on Warning" option: check to have parsed warnings mark the build 'unstable'.
  5. "Mark build Failed on Error" option : check to have parsed errors mark the build 'failed'.
  6. "Select Parsing Rules" : select the set of rules to use for parsing the logs of this job's builds
    (Notice that this list is derived from the global configuration )



Changelog

Version 2.0 (October 20, 2015)

Version 1.0.8 (December 14, 2010)

  • Bug fix: Strip encoded ConsoleNote from log prior to parsing and display (JENKINS-7263).
  • Enhancement: Allow marking builds with warnings as unstable (JENKINS-7853).
  • Bug fix: Links to style sheets should be relative to Hudson root url (JENKINS-8268).

Useful parse lines

This section collects some useful additional parse-statements contributed by users of the Log Parser Plugin

JaCoCo code coverage fails to read class-data
error /Execution data for class .* does not match./

113 Comments

  1. Unknown User (varunthakur@gmail.com)

    Hi ,
    Can you also publish the compatibility information as the plugin did not work with the supported version of hudson (1.3.12)

  2. Unknown User (sagar.khushalani@nyab.com)

    I tried running this with the latest version of Hudson (1.355) but was not successful. Has anyone tried it yet?

    Also, the format for the parsing rules file: Is it

    _error /ERROR/_

    or

    error /ERROR/

    (with or without the underscores?)

    Awesome plugin, thanks!

  3. Unknown User (mertz@intuilab.com)

    Hi,

    works fine for me on Hudson ver. 1.362 Very nice plugin.

    The correct parsing rule is :

    error  /ERROR/

    And important point : default directory where for the parsing rule file is the directory which contains the jobs/ dir

    1. Unknown User (spenco)

      However much I try I always get:

      log-parser plugin ERROR: Cannot parse log: Can't read parsing rules file:wc-TCK-parsing-rules
      

      At the moment I'm copying it to the $T_WORK directory. I've tried copying the parse rules file to /tmp and accessing it there.

      This plugin looks like just what I need, any ideas?

      1. Unknown User (spenco)

        Silly me.

        The parser file has to be accessible to the hudson instance. I had my jobs running on remote machines and had put the parser files there.

  4. Somethings wrong with the paths to the CSS-file in Hudson ver. 1.363.

    eg. the link points to
    /hudson/css/style.css

    while it should be

    /css/style.css

    1. Hi David,
      Indeed, the links appear to have a hardcoded 'hudson' prefix. It should be relative to the Hudson web root.

      Opened bug: http://issues.jenkins-ci.org/browse/JENKINS-8268

      Thanks! Will fix in the next release.

  5. Unknown User (thomas.oswald)

    The directory from which the search for the parsing rule file begins is NOT always the directory which contains the "jobs" directory.

    It is the current working directory of the process which starts the Hudson (only Windows platforms; other platforms i don't know).

    Example:

    1. Hudson is started through a batch file which is located in the directory "C:\Program Files\Hudson". Then this folder is the starting folder for the rule files.
    2. Hudson is started as a windows service. Then the "%windir%\system32" or "%windir%\syswow64" folder is the starting folder for the rule files.

    I think this is a bug of the plugin. The search should always start at "HUDSON_HOME". An other solution is that the plugin accepts environment variables in the file path for the rule files (this doesn't work at the moment too).

    1. I think that current configuration storing method is making this great plugin not practically usable.

      I added a feature request to move the configuration inside the job configuration, feel free to vote it and add your opinions there. http://issues.jenkins-ci.org/browse/JENKINS-7490

      1. Due to the hardcoded path in the config it is impossible to use the plugin in a multiple OS hudson setup. For example I have the hudson server running on OS X but all my jobs are executed by nodes running Windows. Due to this I can't use the plugin because there is no workaround to delivery the configuration to the slave.

        Probably the easiest solution for this would be to modify the plugin to change the current directory to the workspace root. This would enable us to put the parser config file in the SCM.

  6. It would be nice to have the option to store parser rules in a text box from within the hudson GUI, rather than a file. I don't have file system access on our hudson server, but I do have admin access in the GUI.

    EDITED:
    I figured out how to copy a file to a specified location on the filesystem of the master hudson server using a maven plugin, however I am running into problems copying that file down to the slaves. I't like to copy the rule file to /tmp/minimalRules.txt but the "Copy to Slave" hudson plugin only puts the files into the root of $WORKSPACE. It doesn't look like this plugin supports reading environment variables so that doesn't help.

  7. Is there away to get it to work with an external job?

  8. Unknown User (tomas.homola@gmail.com)

    Hi all, nice plugin but Is there way how to mark more lines by some regex pattern(s)?? For example mark this lines of console output as error

    [javac] Compiling 720 source files to /home/prcek/java_aisservis/GolemEJB/build/jar
    [javac] /home/prcek/java_aisservis/GolemEJB/src/java/cz/aisservis/ejb/golem/utils/BeanMapper.java:4: ';' expected
    [javac] package cz.aisservis.ejb.golem.utils
    [javac] ^
    [javac] 1 error

    I have done it to modify plugin by myself but I will(I hope others as well) appreciate if it will in official release.

    Thanks Tomas

    1. Hi Tomas,
      I'm not sure I follow. Is the change to mark and treat a group of lines as a single error? Do you have a patch for this? It indeed sounds very useful!

  9. Unknown User (ajaydwarkani@gmail.com)

    I am seeing garbage characters (Hex characters) when the "Add timestamps" is selected in Job configure. Can anyone help me to overcome this issue or this is a bug in plugin?. Thanks in advance.

    Here is how the output looks

    [8mha:AAAAdB+LCAAAAAAAAABb85aBtbiIQSOjNKU4P0+vIKc0PTOvWK8kMze1uCQxtyC1SC8ExvbLL0llgABGJgZGLwaB3MycnMzi4My85FTXgvzkjIoiBimoScn5ecX5Oal6zhAaVS9DRQGQ1lnw9KIYADxiu4CBAAAA[0m Submitting files for "Source" perforce...
    [8mha:AAAAdB+LCAAAAAAAAABb85aBtbiIQSOjNKU4P0+vIKc0PTOvWK8kMze1uCQxtyC1SC8ExvbLL0llgABGJgZGLwaB3MycnMzi4My85FTXgvzkjIoiBimoScn5ecX5Oal6zhAaVS9DRQGQ1lnw9NokAMKzLyWBAAAA[0m Warning: No files to submit for "Source"

    Should be like this
    23:46:44 Submitting files for "Source" perforce...
    23:46:46 Warning: No files to submit for "Source"

    1. Hi Ajay,
      This was reported in JENKINS-7263. There is a patch attached to the bug, and a release should be coming out shortly that will address this problem.

      1. Unknown User (swrankmo)

        John, is there a planned release date yet? I would like to use both this and the timestamper plugin but at present it confuses the user.

        1. Hi Sam,
          It is pretty ugly! The fix should be out in the next few days. It would be easy to strip out the console notes (timestamps) but I am trying to see if they can be preserved in the parsed output.

  10. Unknown User (swrankmo)

    A couple of other queries/suggestions. (Some may already be possible - if so, please let me know)

    The first is cosmetic (but would stop distraction): Is it possible to configure the format of colours and fonts used? The orange on white for warnings is difficult to read, and the use of a non-uniformly-spaced font makes scanning the output cumbersome.

    Re-parsing of logs: I would like to be able to modify the parser used and 'reparse' an existing log. There are times when you may find a false-positive, wish to change the parser or use a more verbose parser on the same log without having to re-run the build job.

    Section grouping: Allow the expansion and reduction of lines for identified sections, similar to the top-level 'Error', 'Info' and 'Warning'. There are times where we have several hundred warnings or info messages and another level in the 'tree' would simplify their review.

    Thoughts/comments gratefully received.

    1. Hi Sam,

      Thank you for the suggestions. None are currently available...

      1. Custom colors/fonts. Color should be straightforward. The report was supposed to use the standard Hudson css so as to keep a consistent look and feel, but due to bug JENKINS-8268, it was not always finding the style sheet. But this still isn't a fixed width font. Maybe a configuration option to wrap the whole report in a <pre> block, similar to the console text output would suffice?

      2. Re-parsing has been considered, but presents some problems. The log parsing can set the build status. It is generally not a good practice to modify the build result manually (which essentially this feature would do) after a build is complete, so we did not pursue this. Automation steps are often based on build status, so manually changing it "after the fact" introduces new complexities. I also believe the Hudson core prevents this by:
      a.) Only allowing the build status to be set while the build is running.
      b.) The status can only be set to a 'lower' level. Presumably since later steps might be run but not know the build is already unstable/failed, it wouldn't be good to upgrade the result.

      3. You mean to have any build 'sections' also be a collapsible tree? Seems quite reasonable.

      Thanks!

  11. Doesn't work in my Hudson ver. 1.398. After installing the plugin, no options appear in the Hudson Config or in any job configs.

    1. There is an issue with loading some plugins in this version of Hudson. It does not affect Jenkins. My understanding is this will be fixed in the next release.

      http://java.net/projects/hudson/lists/dev/archive/2011-04/message/13

      http://issues.hudson-ci.org/browse/HUDSON-8812

      A workaround with this version is to set the JVM property on startup:
         "-Dhudson.PluginStrategy=hudson.ClassicPluginStrategy"

  12. Hi,

    is possible to mark build as failed if some text in log isn't present?

    Thanks for reply

    1. Not really with this plugin. I had thought the text-finder plugin provided this functionality, but cannot find the feature there either.

  13. Hi,

    I am using log parser and for some reason it's stopped showing me parsed logs in "Parsed Console Output" UI. Here is how it looks
    Here is the  log informationApr 21, 2011 12:54:15 PM hudson.plugins.logparser.LogParserPublisher perform
    SEVERE: null

    Apr 21, 2011 12:54:15 PM hudson.plugins.logparser.LogParserParser parseLogBody
    INFO: LogParserParser: Start parsing : Test_build_27

    Thanks,
    Ajay

    1. Hi Ajay, not much to go on here. Any stack trace?

      1. Where can find the stack trace? I tried uninstalling and re-installing the plugin but it didn't help. 

        1. This can happen if the slave.jar on the slave is out of sync with the master, for example after the master is upgraded. Ensure the slave has the proper slave.jar file from the server http://server/jnlpJars/slave.jar

          Will look into catching the exception and provide some helpful messaging.

  14. So where do I put the Parsing Rules File and how exactly do I specify where it is on Windows7.

    I've tried numerous methods and the file is never found.

    A disk utility seems to show it is always looking for C:\Windows\.SysWOW64\myrules.txt

    1. The parsing rules file is read on the server. Use a full path to specify the location. If you use a relative path, the base is the process that started Jenkins, which can be confusing.

  15. Please provide description of level "start" (ok/error/warning/info is clear to me).

    1. Updated docs, hopefully clearer now.

  16. The parse rule is well define. However, since the Log Parsing Rule is a Post Build job, when the build is failed, Log Parse Job will NOT execute.

    Can have enhancement on it ? Like parse the log at run time when user click the "Console" Link. ?

    1. For me the log-parser invoked, however, the build was failed.

  17. P Y

    hi,

    thanks for the plugin, but I have issues running it in a jenkins inside tomcat. I placed the rules file in JENKINS_HOME but I always get the error: 

    ERROR:Failed to parse console log :
    log-parser plugin ERROR: Cannot parse log: Can't read parsing rules file:minimal_rules.txt

    i have other pc with jenkins running directly from its home via batch and there is no issue, file is found.

    can you please elaborate your plugin description and tell where could i please the rules file?

    thanks!

    1. Looks like you're using a relative path - just the filename. If you use a relative path, the base is the process that started Jenkins, which is confusing (this should be fixed in the plugin).

      It is better to use a full path to the file in the configuration.

      1. P Y

        Hi John,

        I am using following. is this not correct?

        1. Sadly, the plugin doesn't interpolate any variables, so you will need to specify the actual path. Another item that needs to be fixed.

          1. Any idea when this issue will be fixed?

  18. P Y

    Hello,

    I have just another question. We are lately having this kind of error:
    BUILD SUCCESSFUL
    Total time: 18 minutes 18 seconds
    FATAL: Java heap space
    java.lang.OutOfMemoryError: Java heap space

    it seems this is happening when the Log Parser runs out of memory trying to parse a huge log. Our current log level (log4j) is DEBUG and when we change it to INFO then the whole job finish successfully.

    there is a way to increment memory for the log parser?

  19. Is this plug-in still maintained? It is quite a time since the last release. When is the next release planned?

    Any chance to get this plug-in migrated to github? This would help to get more users and developers involved, i.e. by sending patches via pull requests.

    1. Hi Ulli,

      It is migrated to github already, and there have been two patches since:https://github.com/jenkinsci/log-parser-plugin

      I have been delinquent in my maintenance due to ongoing work load - perhaps it is in need of a new owner. I will try to do a release with the current enhancements this week. I think that will update the plugin information to show the source is in github, is it right?

      Thank you,
      John

  20. Thank you-- I think this plugin adds a great deal of value.

    One suggestion:  could the configuration be tagged with "[Log Parser Plugin]" (both for Jenkins configuration and in the job configuration)?  As the number of plugins increases, I think it is helpful to have a consistent label for the configuration steps.

  21. In anyone is interested in a comprehensive set of parsing rules, you are welcome to try https://gist.github.com/2820044 - patches are welcome! 

  22. Should that parsing file be on the master node or on the execution node? Also I'd be nice to give some example rules, like for MSBUILD and such.

    1. The parsing file needs to be on the master. If you build from the latest code, there is a job level option to specify a file in the workspace (so the rules can be kept with the job scm), but that is not released :(

      Sorin Sbarnea provided a great set of examples with explanations in the post directly above.

  23. Hi,

    great Plug-in, good flexibility!

    Now my question: is it possible to change the mark-up colors, say I want another color for Warning messages?

    Thank you!

    Regards

  24. Excellent plugin. But can someone please provide info:

    1. Is there a way to display LogParserPlugin console output in Email-Ext plugin ?

    2. Any regex pattern to skip particular error ?

    1. Hi Ankit, to skip an error you can make a specific 'ok' rule that will match only it and have this rule above the general error one.

    2. Unknown User (velleh)

      I'm very interested in the first question.. did you find a solution for this?

  25. Hey I used this plug-in for some test parsing and like many seem to have mentioned here I had a lot of trouble because I work at a satellite location where we do not have direct access to the machine or server running our Jenkins server.

    I noticed recent Github versions of the plugin added the ability to use paths to parse rules files which are not on the master node. However when I downloaded and tried to use it I still could not get the plugin to recognize parsing rules on the slave node disks.

    I was able to customize the log parser to allow for rule to be added in an extended text window but simply removing the ability to find and use a parse rule file and instead feed in the parse rules as a string read directly from the config.jelly windows in Jenkins projects.

    So now I am using this parser by simply entering a few parsing rules in an extended window text field in each individual Jenkins project. This worked well for us since it only requires slave access and I typically only need a hand full, ie 4 or 5 different parsing rules per project.

    Would anyone be interested in me posting the modifications or possibly a branched build? I am including a screen shot of how the rules option looks for me now. Oh and this parser works great so thanks for all the initial work put in to make it!
    You'll notice the text field label still says "path to".... I need to clean up the changes to reflect the functionality. This is more of a hack right now than a full change but it works well.

    1. Hi Steven,

      When specifying rules on the node, it must be a path relative to the project workspace root. However, I just noticed the configuration save logic was broken on trunk so indeed it could not work without any configuration! It is fixed now and perhaps that version can meet your need. I do like the idea of saving the rules with the build source to keep a historical record.

      I know people have requested the ability to add rules in a textbox, so your work is definitely welcomed. I think it would be great as a third radio option.

      1. Hi jborghi,

        Thanks, I will check out GitHub and download another copy to see if the local workspace root path works for me now.

        When I get some time I'll adjust my modification as another possible radio option to redirect your parser to work from text field input as opposed to a parsing file and run it by you guys to see if we want to add it to the GitHub.

    2. Hi Steven,
      What you mean by "I need to clean up the changes to reflect the functionality" ? How do we do it?
      I have kept txt file in jenkins workspace, and gave that full path in "Path to rule file in workspace" Its working. I have below line in txt file.
      ok /not really/
      # match line starting with 'error ', case-insensitive
      error /(?i)error /
      # list of warnings here...
      warning /[Ww]arning/
      warning /WARNING/
      I  added few more lines like..
      # list of Passed test cases here ...
      PASSED /PASSED/
      # list of Failed Test case here ...
      FAILED /FAILED/
      But the changes doesn't reflect, If I delete "warning" and "error" from txt still the result shows warning and errors, Strange,How to reflect the changes that we modify in txt file?
      Regards,
      Vinayak

      1. Hello,

        so my understanding is, you changed the rule file - right ?

        Jenkins will only parse the console output once after the run (It is a post-build-action after all) So only the new runs will reflect the change.

        Martin

  26. Hi John B.,

    I have extended your recent update to include an override option to allow the parser to use a set of rules entered in a textbox within a Jenkins project. It only required additions to two java files and the config.jelly interface for the  LogParserPublisher.java.

    The radioBlock caused me some trouble where text entered in a block did not properly bind. Resulting in functional code with a null pointer failure when looking for parsing rules.

    This appears to be a problem for entering a path for your workspace rules file as well.

    The overall interface is still clean and my override option should not have effected earlier code though I cant verify that the global rules work as I don't have master node access. 

    Could you link me to some directions on how I could upload my modifications to GitHub if you want to take a look at the addition and see if its worth keeping?

  27. Do you know where can I download latest build of this plugin?

      1. I know where source code is, but I'm looking for compiled version to check it on Jenkins. Can you guide me somehow?

        1. CI builds run on the Cloudbees BuildHive. You can download the .hpi from the latest build there. https://buildhive.cloudbees.com/job/jenkinsci/job/log-parser-plugin

          Or just download the source and run 'mvn package' to build the hpi locally.

          1. Thank you for response :)

  28. We use perforce as the scm. Perforce is notorious for poor choices in terms of error messages and exit codes. So we added for example:

    ok /- file(s) not opened on this client./

    at the top of the file, but this line is still flagged as an error:

    error: path1/path2/... - file(s) not opened on this client.

    ?

    1. It treats the string as a regex, so special regex chars need to be escaped to match them in the output.

      This might work:

      ok /- file\(s\) not opened on this client\./
  29. I seem to be stuck creating the correct regex. In a nutshell, I want to report on all errors / warnings, but not on the summary of errors / warnings when at 0.

    So I've implemented 'default' rules:

    error /(?i)error/
    warning /(?i)warning/

    But I want to 'ok' following text:

    Summary
    0 Warning(s)
    0 Error(s)

    So the first step is:

    ok /(?i)0 warning/

    But I don't want to 'ok' :

    Summary
    10 Warning(s)
    0 Error(s)

    So, I've rewritten the regex to (a number of) variants:

    • ok /(?i)(?![d]*)0 warning/
    • ok /(?i)(?![\d]*)0 warning/
    • ok /(?i)(?![d*])0 warning/
    • ok /(?i)(?![\d*])0 warning/
    • ok /(?i)(?![1-9]*)0 warning/

    But it still seems to handle 0 Warning(s) and 10 Warning(s) in the same way!

    Can anybody get me back on track? Thanks in advance.

    1. To allow 0 preceded by anything other than a digit, you could try (above the lines that catch the warning/error):

      
      ok /(?i)(\D|^)0 error/
      ok /(?i)(\D|^)0 warning/
      
      
      1. Works like a charm! Thanks.

        Although I'm not sure about the use of '^'. Does this mark the beginning of a line? Because my 0 Warning(s) is at the beginning, but it will not be ok-ed by any of the following rules:

        ok /(?i)^0 warning/
        ok /(?i)\^0 warning/
        ok /(?i)(^)0 warning/
        ok /(?i)(\^)0 warning/
        ok /(?i)[^]0 warning/
        ok /(?i)[\^]0 warning/
        

        Is there a more extensive guide to the syntax? The examples fall a bit short, especially when combining special regex characters.

        1. yes, the '^' is to match the start of line. Your first pattern should work if only interested in capturing the pattern at the start of the line. Note that this will fail if anything is pre-pended though, such as timestamps.

          ok /(?i)^0 warning/
          

          Oracle has a reference tutorial on Java regex patterns (The Java flags are slightly different from Perl, which many web examples will use): http://docs.oracle.com/javase/tutorial/essential/regex/char_classes.html

          1. I can confirm that the pattern indeed works as expected. Must have been something wrong with my tests earlier.

            Thanks for the link! It will probably help me tackle (or work around) most of my issues.

  30. Any suggestion about how to generate a "parsed log" from a old execution?

    I was thinking on any groovy script using the script console, but i'm not sure how to do it.

    I want something similar like :

    Email-ext plugin - Testing Templates

  31. Great plugin!  We faced one issue on Chrome - the anchor links don't seem to work.  I have issued a pull request on GitHub which provides a fix.

    My team has asked for a couple enhancements to your plugin.  I was wondering if you would have any interest in these if I contributed them back, or if we would need to fork it & go ahead on our own:

    1) Categories other than Info, Warning, Error - we'd like to use the plugin to aggregate results of many different types.  What would you think of having "levels" other than those you've pre-defined (info, warning, error, ok, start) show up as additional entries below Info, Warning and Error?  For example, if I added "Artifact /Artifact: /" then it would add "Artifact" below Info/Warning/Error on the left-hand side of the UI with a list of all matches.

    2) Refinement of links - right now you grep out the matching line and the entire line becomes the hyperlink on the left hand side.  What if the rules file could optionally contain a second regex after the first, and only the portion matching that regex would be shown as the link text, whereas on the right hand side the original line would be preserved?  For example:

    info /INFO: / /.*{0,20}/          (this would take up to 20 chars of the INFO line)

    warning /WARNING: / /.*?\./   (this would reluctantly take all content up to the first period.

    If I implement these, would you like to incorporate them back into your plugin?  Or they are a bridge too far from your original intent?

    1. Hi Greg,
      Thanks for your suggestions! Replied to your registered email.

  32. Hi There

    am trying to show the build as error if it conating below links

    make[6]: *** [BUILD] Error

    so i tried below ways to reflect as error in rules file

    method1error /^make[\d]:.*[\d|\D|\w|\W]\sError / 

    method 2 error /^make[\d]:***\s[\d|\D|\w|\W]\sError /

    method 2 error /^make[\d]:***\s[\d|\D|\w|\W]\sError /

    jenikins version Jenkins ver. 1.509.4

    however no use still it is showing pass it is not detecting the lines as error... 

    can some body tell me what is wrong it this.. 

    Thanks in Anticipation... 

    reply to me shyamchander01@gmail.com 

    plugin version 1.0.8 

    1. Hi Shyam,

      Square brackets are special characters to a regexp so you need to escape them to have them match (as you want) in your string.

      1. Hi Jborghi

        Thanks for the response I tried to escape the square brackets still i could not able to get it.

        i tried below ways

        NOTE: Some bad parsing rules have been found:
        Bad parsing rule:error /^make[\d]:*\s[\d|\D|\w|\W]\sError /, Error:Dangling meta character '*' near index 13
        ^make[\d]:***\s[\d|\D|\w|\W]\sError 
        NOTE: Some bad parsing rules have been found:

        Bad parsing rule:error /^make[\d]:*\s[\d|\D|\w|\W]\sError /, Error:Dangling meta character '' near index 13*

        ^make[\d]:***\s[\d|\D|\w|\W]\sError  so i tried to escape the * mark also using below but still not able to get the output as error.

         error /^make[\d]:\s*\s[\d|\D|\w|\W]\sError /

        However for reporting other errors like below 

        make: *** [all] Error 127 --> "error /^make:.[\d|\D|\w|\W]\sError / {*}" this one worked out i am wondering how it is working. with out escaping the * and sqare brackets. 

        pls can you finder what am doing wrong here.

        1. Hi, your square brackets are not escaped, so the regex engine expects a character set. Something like this might work (or less specific is the log pattern isn't always so precise):

          

          ^make\[\d+\]:\s+\*{3}\s+\[BUILD\] Error
  33. Are there any known issues using this plugin on a win 2008 64 bit server? I was successfully using it on an win 2003 32 bit, and after upgrading it doesn't seem to want to play nice.

    My specific error is:

    ERROR:Failed to parse console log :
    log-parser plugin ERROR: Cannot parse log: Can't read parsing rules file:c:\filelocation\msbuild.txt

    I'm running jenkins as a service, and the service user has adequate permissions to the directory - so no problems there. The same file in my old instance is working fine, so it isn't the file context. The only difference I seem to be able to identify is that the OS has changed.

  34. Does anyone know how to attached the parsed console output to the body of an email?  This is a great plugin, and it would be nice to able to attached the highlighted errors/warnings, etc...

    Thanks,

    Eric

  35. Can we make the Parsing Rules File location just easier to use, as I've tried every combination and no luck. For something as simple as specifiying a file location, One should really have to spend this much effort. Or at least better error message than SEVERE: log-parser plugin ERROR: Cannot parse log: Can't read parsing rules file: (Maybe say where it's looking?)

    I've tried plus a bunch of others i can't remember

    C:\GIT\Jenkin-POC\jenkins.POC\work\workspace\parsing_rules.txt

    C:\GIT\Jenkin-POC\jenkins.POC\work\workspace\parsing_rules

    C:\GIT\Jenkin-POC\jenkins.POC\work\parsing_rules.txt

    C:\GIT\Jenkin-POC\jenkins.POC\work\parsing_rules

    $

    Unknown macro: {ITEM_ROOTDIR}

    \workspace\parsing_rules.txt

    $

    \workspace\parsing_rules

    C:/GIT\Jenkin-POC/jenkins.POC/work/workspace/parsing_rules.txt

    C:/GIT\Jenkin-POC/jenkins.POC/work/workspace/parsing_rules

    C:/GIT\Jenkin-POC/jenkins.POC/work/parsing_rules.txt

    C:/GIT\Jenkin-POC/jenkins.POC/work/parsing_rules

    $

    Unknown macro: {ITEM_ROOTDIR}

    /workspace/parsing_rules.txt

    $

    /workspace/parsing_rules

    work/parsing_rules.txt

    \work\parsing_rules.txt

    1. Hi Pedro,

      Not sure if this is your issue, but the released version of the plugin will only read the file from the master, and it should be specified as an absolute path. If you build from the git hub source, there is an option to set a path relative to the workspace root.

      John

  36. I have several Jenkins jobs with the Log Parser Plugin and the extended email plugin

    Management would like to have an email after the job run which contains the number of warnings found in the build

    Is there an easy way to get the information from the plugin as it is displayed on the job status page and include the number in the generated email?

  37. How do you prevent Duplicates? 
    I am running against MSBuild output which reports errors and warnings during compilation and then again at the end of the project as sort of summary so when this parser runs I get duplicates of everything.

    Has anyone been able to avoid that?

  38. I think there may be issues trying to parse files with DOS style line endings, could be worth mentioning, I was getting an errors on empty parsing rules

  39. Unknown User (jl.pinardon)

    I'd like to use Log Parser to highlights some errors in jobs belonging to a build chain.
    It seems ok for my needs.
    But I also need to collect all these highlighted errors / warnings ...etc.. in a very last job of the build chain.
    Though I am not sure to have correctly analyze the plugin's code, it seems that there is no easy / direct way to obtain an array of the links to errors / warns ... etc.. collected.
    The simplest way I found is to read the erros / warnings ... etc html files and extract links from the files.

    Am I true or is there something easier (as a method returning an array of href) ?

    Thanks for your help
    Best Regards

  40. The example shows the Parsing Rules file as /tmp/minimal_rules.  Is it possible for the rules file to live in the project workspace, so that it can be under version control?  If so, how would I specify its path in the global config?

    1. David, did you ever get a response on this? I am trying to run the parser in this fashion as well.

  41. I'm trying to create a rule to OK a block of text between two strings without raising any flag.

    I know ok /abc.*xyz/ rule works for single line.How do I extend this to a block of text or multiple lines like:
    For example:abc
    ... ...
    ... ...
    ... ...
    xyz
    Note: "xyz" is the first string that's matched after "abc"
    I tried ok /abc(?s)(.*?)xyz/ but was unable to make it work. Can anyone help?

  42. Hello,

    thanks for the plugin - it's one of the really important ones for us.

    As a result, I have some requests/bug reports:
    (I'm running Jenkins ver. 1.627 on RH6; builds are done on slave machines)

    1. I just got once more "Jenkins ERROR: Failed to parse console log java.lang.NullPointerException" and the job was aborted by the parser.
      (08:46:07 Build step 'Console output (build log) parsing' changed build result to ABORTED) While the "console" output is visible.
      I'm seeing from time to time jobs with 'Console output (build log) parsing' changed build result to ABORTED) - can I do something about this ?
    2. From time to time I see jobs hanging (for many minutes) immediately after the exit of the shell script section. Can this be related to the console log parsing ?
      (After all, the console log is now available for the parsing.) Can I somehow track this done ? (Or even fix it ?)
    3. Feature request: I have several different "Parsing Rules File". Several of them share some parts of the contents. So I would like a "include" feature in the parser files, to avoid duplicating (and then maintaining the duplicates) in several files.
      (Guess I could do this by generating the files themselves from some input-templates - but having this in the tool itself would be nice)

    Regards

    Martin

    1. (Partial) answer to my own post

      1. I found "too complicated" REs, which seemed to cause this. Changes like this:

      \-error /.*\/ld: cannot find \-l.+/
      \+error /.*\/ld: cannot find \-l/
      \-error /.*.pl.*compilation errors.*/
      \-error /Bareword found where operator expected at .\* line \d+, near .*/
      \+error /.*\.pl.*compilation errors/
      \+error /Bareword found where operator expected at .\* line \d+, near/
      \-error /Execution.*.pl aborted due to compilation errors.*/
      \+error /Execution.*\.pl aborted due to compilation errors/
      &nbsp;
      

      solved the problem to me.
      (I first had assumed, I need to match the whole line)

      2. This also solved the second issue.

    2. You also get the NullPointerException when a job is configured to use a globally configured parsing rules file, but that configuration (not the file itself) is missing.

      Edit: Or, alternatively, if the job configuration lacks the reference to the global parsing rules file.

  43. I'm a CI newbie, using Jenkins 2.22 and have installed this plugin and have restarted Jenkins.
    I have successfully created a parsing rules file and associated it w/my job..

    After performing several new builds, I'm still not seeing anything other than the same console output options that came w/Jenkins OOTB. What am I missing?

    1. You need to enable the parsing in the job configuration:
      then you find it as separate link on the left:

      Regards

      Martin

  44. Hi 

    I am using the option "Show Log parser graphs" . This is a very nice feature, but if the build number is longer than 8 characters , i.e. (2017.5.10.20) , then it won't show on the y coordinates

    Has anyone seen this problem?

    Is there any way to fix this ? I am using Jenkins 2.46.2 and log parser 2.0

  45. I can't seem to get this plugin to work.

    I have a rule file setup (which I  know it is reading because it throws an error when I remove the file), but none of the rules are applied and in the Parsed Console Output there are never any warning, errors or anything. The text is visible there. The rule that I'm applying is error /Error:/ on the text "Error: TEST ERROR"

    Am I doing something wrong? Or is there an issue with the plugin? I'm using Jenkins 2.46.3. I couldn't find anybody else having this issue anywhere...

    Thanks for the help!

  46. The plugin does work

    Is the output of your build available on the build's workspace?

    1. These files are in the builds folder (jobs/[projectname]/builds/[buildnr]). Should they be somewhere else?

      logerrorLinks.html's content is: "HEADER HERE: #0".

      Thanks for the help!

      1. The files should be in

        [JENKINS-HOME]/jobs/[jobname]/workspace

         

        1. Hmm, my default workspace folders aren't there (and most my projects have custom workspaces). Instead, I have: [JENKINS-HOME]/workspace/[jobname].

          Are you sure these should be inside the workspace? I personally feel that that wouldn't make too much sense as build data isn't generally stored there?

          1. I have the same directory structure.  Did you get this to work?

  47. Is there anyway to get this to work with a declarative pipeline?

    1. this ist not a jenkins 2.0 plugin (req. version 1.596.1 ), therefore this couldn't work, sadly (sad)

      1. i was wrong; have a look here  JENKINS-32866 - Getting issue details... STATUS  this works for me

  48. this ist not a jenkins 2.0 plugin (req. version 1.596.1 ), therefore this couldn't work, sadly (sad)

    1. i was wrong; have a look here  JENKINS-32866 - Getting issue details... STATUS  this works for me

  49. The graph links to the URL <ProjectName>/<BuildID>/testReport. Wouldn't it make much more sense that it links to the parsed console output? Meaning: <ProjectName>/<BuildID>/parsed_console

  50. Is it possible to specify a raw logfile instead of the console log? 

  51. Hi, Is there any possibility to display these errors and warnings in "Dashboard View" in seperate columns.

  52. Can you show some pipeline examples using this plugin?

  53. Gao Ningning Try the below pipeline step,

    step([$class: 'LogParserPublisher', failBuildOnError: true, parsingRulesPath: '<parser rule file>', useProjectRule: false])

  54. Is it possible to support gzip compression of "log_content.html"? For long stdout it occupies lots of space. There is already plugin which allows compressing the output, would be great if it is integrated too (somehow).

  55. What is the maximum file size of the console log?

    I have a log that is > 500MGB.

    I receive the following error:

    ERROR: Failed to parse console log        

    java.io.IOException: Remote call on childbuild-xx failed

    And why is the plugin calling a remote non-existent file on the slave, instead of the console (log) in the Jenkins build directory?

    ./jenkins/jobs/my_Project/builds/xx

    651844 -rw-rw-r-- 1 opencm opencm 666829505 Aug 20 17:17 log

    0 -rw-rw-r-- 1 opencm opencm         0 Aug 20 17:13 log_content.html

    0 -rw-rw-r-- 1 opencm opencm         0 Aug 20 17:13 logerrorLinks.html

    0 -rw-rw-r-- 1 opencm opencm         0 Aug 20 17:13 loginfoLinks.html

    0 -rw-rw-r-- 1 opencm opencm         0 Aug 20 17:13 logwarningLinks.html

     Thank you.

  56. Hi,

    I used this plugin a few years back and I wondered if it still works on latest LTS and indeed, it still works as of current jenkins LTS (v2.138.3).

    My setup though is quite simple, and the parsed rule is accessible from the jenkins master filesystem (e.g. /var/lib/jenkins/consoleParser) with the following rules:

    error /(?i)ERROR/
    warning /(?i)warning/

    And in the jenkins job, configured to use this global rule.

  57. Hi,

    I'm looking for documentation on how to configure plugin through the code.
    FE. I can configure git  by:

         import jenkins.model.Jenkins
          
          def gitParameters = [
            globalConfigEmail:  '${jenkins_git_global_config_email}',
            globalConfigName:   '${jenkins_git_global_config_name}'
          ]
          
          Jenkins jenkins = Jenkins.getInstance()
          
          jenkinsGitConfig = jenkins.getDescriptor("hudson.plugins.git.GitSCM")
          
          jenkinsGitConfig.setGlobalConfigName(gitParameters.globalConfigName)
          jenkinsGitConfig.setGlobalConfigEmail(gitParameters.globalConfigEmail)
          
          jenkinsGitConfig.save()
          jenkins.save()


    and looking for similar for log parser