Heads up! ScriptRunner for Bamboo documentation has moved to https://docs.adaptavist.com/sr4bam. Adaptavist will keep this site up for a bit, but no future updates to documentation will be published here. ScriptRunner 6.20.0 will be the last release to link to scriptrunner.adaptavist.com for in-app help.

What is the variable 'log'?

The log variable is injected into every ScriptRunner inline script, and its value is equivalent to:

def log = Logger.getLogger("com.onresolve.scriptrunner.runner.ScriptRunnerImpl")

log is an instance of a Logger.

Using your own logger

It might be preferable to use your own logger so that you can adjust logging levels separately from ScriptRunner as a whole.

In an inline script, or file, you can do this using the following code:

import org.apache.log4j.Logger

def log = Logger.getLogger("com.acme.workflows")
log.warn("Workflow function running...")

If you use classes the simplest way to get a logger is to use the @Log4j annotation:

package com.acme.workflows

import groovy.util.logging.Log4j

class Foo {

    void utilityMethod() {
        log.warn "Foo.utilityMethod"

In the above example, the log instance is automatically created and will have the category com.acme.workflows.Foo, that is, the fully qualified class name.

This is the best way of logging, as it will automatically wrap calls to the logger in the relevant guarding function, e.g. if (log.isDebugEnabled()) {log.debug(…​)}
Bamboo uses log4j 1x, if browsing the documentation be sure you are not looking at the documentation for log4j 2x.

Log Levels

A log message is printed if the logging level is the same or higher than the configured level for that category.

For detailed information on logging levels, see log4j Logging Levels.

The default log level for most categories is WARN. Take a note of the default log level before making any changes. Therefore, if you want to use log.debug, the category level must be set to DEBUG or TRACE.

Take a note of the default log level before making any changes.

Temporarily enable ScriptRunner logging under System>Logging and Profiling in the Administration menu. Set the com.onresolve package to DEBUG under Default Loggers.


This sets the logging level until the instance is restarted or the logging level is changed manually (to the default WARN for example).

You can change the logging level permanently by adjusting the log4j.properties files - see the Atlassian Bamboo Logging Levels documentation.

Logging to Build Logs Tab

You can write to the Build Logs tab by using the addBuildLogEntry method from buildLogger binding variable. The buildLogger is available in scriptable and custom script condition tasks as you can see in the example below:

buildLogger.addBuildLogEntry("Add here some log to show in build Logs tab")


The buildLogger binding variable is a instance of BuildLogger.

Have questions? Visit the Atlassian Community to connect, share, and learn with other Atlassian users and experts, including Adaptavist staff.

Ask a question about ScriptRunner for JIRA, Bitbucket Server, or Confluence.

Want to learn more? Check out courses on Adaptavist Learn, an online platform to onboard and train new users for Atlassian solutions.