Skip to main content

Logs

When a package is executed, it generates a log of its actions.

The log panel for reading and searching these log lines can be accessed via toggles in the header of the package script tab.

Log toggles and log panel

Use the toggles to customize the layout:

  • Hide the log panel and show only the package editor.
  • Show the log panel to the right of the editor.
  • Show the log panel below the editor.
  • Hide the package editor and show only the log panel.

The log panel has several options for filtering and searching, which are described below.

In addition, the log panel is the place to start test runs via the Start test run button, and to configure test run settings.

Log lines are written by the log, logVerbose, logDebug and logError functions in the package script and its libraries. The automator also creates some log lines, for example when an execution starts or ends, or when the rate limiter of an external system is reached.

Which of these lines actually end up in the log depends on the Log level setting of the package, described in Configuration.

Logs are kept for 90 days, after which they are deleted automatically.

The log panel shows log lines sorted by timestamp, with the most recent lines at the bottom. Older lines (matching the search criteria) are automatically loaded when you scroll up.

The displayed log lines can be downloaded as a JSON file, or copied to the clipboard.

Reading a log line

Each line shows five things:

  • Execution ID: an eight character code identifying the package execution that wrote the line.
    Click it to show only the lines of that execution.
  • Timestamp: the time the line was written, in the time zone of your browser.
  • Level: debug, verbose, info, warn or error.
    Test runs also produce success and failed lines.
  • Message: the message of the log, formatted as a string.
  • Data: the data of the log on a new line, formatted as a structured object.

The message and data correspond to the arguments passed to the various log functions listed above.

If the data contains a reference to a line of code, such as the stack trace of an error or the location of a failed test, it can be clicked to jump to the corresponding line in the editor.

Searching

Type in the search box to show only the lines that contain what you typed. The search covers the message and its data.

There are two search modes: Simple (phrase) and Advanced. Use the dropdown in the filter menu to switch between them.

When you select text in the log panel and press /, the search box is automatically filled with the selected text.

Note that punctuation and capitalization are ignored, and only whole words are matched. Searching for request#123 therefore gives the same result as searching for Request 123 and matches Request 123, request#123, request@123, and so on. Searching for 123 finds Request#123 but not 98123.

info

To understand in depth how searching and matching works and why punctuation is ignored, it may be helpful to know that the message and data are indexed using the standard analyzer of OpenSearch, which is based on the Unicode Text Segmentation algorithm.

Simple (phrase) search mode

In simple mode, words have to appear next to each other, in the order you typed them: created request finds "Created request 4711", but not "Created the request". This makes it ideal for searching log lines produced by a specific log function call.

The last word of the query (provided it is at least 3 characters) uses "prefix matching", which means that searching request 123 also matches Request 12345.

Advanced search mode

In advanced mode, the words you type are no longer required to appear next to each other, and the following operators become available:

OperatorMeaningExample
+the word is required+timeout
-the word must not occurerror -timeout
|either worderror | warning
"…"the words must be next to each other"connection reset"
*wildcard, partial matchtime*
(…)grouping(error | warn) sync

Words that are not marked with an operator all have to occur, in any order and anywhere in the line.

The * operator can only be placed at the end of a word, not at the beginning or in the middle.

info

Simple mode corresponds to the match phrase prefix query of OpenSearch, and advanced mode to the simple query string query with AND as the default operator.

Filtering

In addition to the search box, the log panel offers the following filters:

  • Time range: accessible via the filter menu in the search box.
    Use it to show only log lines in a certain time frame. You can choose between an absolute time range, such as "between 2026-08-21 14:32:00 and 2026-08-21 14:35:00", or a relative time range such as "last 10 minutes" or "last 2 days".
  • Execution ID: accessible via the filter menu in the search box.
    Use it to show only log lines matching one or more selected executions. To help you to quickly make a selection, the filter dialog suggests a list of the 25 most recent executions matching your current search query and time range. If you know the ID, you can also type it in the filter box.
  • Minimum log level: accessible via the dropdown in the log panel toolbar.
    Use it to hide log lines at lower levels. For example, when you set the minimum log level to info, log lines at debug and verbose level are hidden.

Following new lines

You can also follow ("tail") new log lines as they arrive, by pressing the button with the radio icon in the log panel toolbar. Following is not possible when the time range ends in the past, since no new lines can arrive in a range that is already over.

When you start a test run, following is turned on automatically, so that you can see the results of the test run immediately. Once the test run completes, following is turned off again.