Goatlog concepts

Goatlog provides a format to report information about the execution of tasks, along with information about the context of the tasks during the execution.

What is called “Execution” here is also called build in Buildbot and Jenkings. We prefer to not call it so as it involves much more than just building things.

An execution contains three main things:

  • Target: What is being tested?
  • Environment: Data about the environment of this execution. It can contain the Operating System, as well with other information about the environement the execution is being run onto.
  • Execution-content: Report on the execution.

Target and Environment are loosly defined and usually context specific.


The execution-content is structured as a tree: Contexts are opened and content is added into this specific context.

Context node

The context node is a way to provide information about which part of the execution produced some content. The most frequent context is a Step context, which represents a step (an action) in the execution flow.

A FileTestContext, representing a test file could also be used as a specilized context node for instance.

Context nodes can be embedded into other context nodes.

Here is the format of a context node:


The type of context. This might impact the kind of element allowed in the context.

string in a valid subset


The identifier of the context, should be unique.



The status of the context. One of the following:

  • missing
  • skipped
  • killed
  • error
  • failure
  • nodata
  • partial
  • success
start date:

When the context was open (if applicable).

end date:

When the context was close (if applicable).

Step context

A context representing a step. Classically, first records will be arguments given to the step and the last one are content produced by step (stout, stderr or more precise data).

TODO: Following contexts requires more work.

File context

The file context

file path:path of the file (relative ?)

Test Group

  • Name

Leaf node

The Leaf Node is the normal way of report informations.


The log message is the most common leaf node, normal “logging” api will produce some LogRecord. It contain:

  • severity
  • message
  • category (optionnal)
  • line (in File context)

Version Info

The version info is a leaf node used for giving informations about various components version. It contains:

  • name
  • version

Config Info

The config info is a leaf node used for report configuration passed to the execution. It contains:

  • Variable
  • Value


The test record represents a test case, it’s format is:


The test name


Result of the test:

  • success
  • failure
  • skipped
  • error
  • unexpected-success

Message associated to the test (if applicable).


Traceback of a possible exception (if applicable).

Project Versions

Table Of Contents

Previous topic

Goatlog, logging for continuous integration

Next topic

How to use goatlog

This Page