Advanced guide

Logs & traces message format

Logs & traces output of each source can be customized in Logs & traces by clicking on the gear icon in the upper right corner:

Xnapper-2024-10-10-16.23.15.png

The Logs & traces message format is a freeform text template with columns wrapped in {column} brackets.

Logs & traces message format example
LEVEL: {level}, PID: {context.system.pid}, THREAD: {context.runtime.thread_id}

Conditional rendering can be achieved by piping multiple values

Logs & traces message format with conditional fields
LEVEL: {level}, THREAD or PID: {context.runtime.thread_id|context.system.pid}

If you have special characters in your fields such as dots, you can use square brackets instead:

Logs & traces message format accessing "thread.id" field in "context"
LEVEL: {level}, THREAD: {context["thread.id"]}

Colors

You can format and color your logs using a subset of ANSI codes in your log messages.

For example, this is how you could format your logs using our JavaScript client:

Log formatting example
logger.info("Logs can be \u001B[1mbold\u001B[0m, \u001B[31mred\u001B[0m, or \u001B[1;32mbold green\u001B[0m.");

Here's the result you would see in Logs & traces:

live-tail.png

Supported colors

Logs & traces supports 31-36 and 91-96 code ranges for colors in both light and dark themes.

Supported font styles

  • Bold: ANSI code 1
  • Light: ANSI code 2
  • Italic: ANSI code 3
  • Underline: ANSI code 4

Style reset

Each font color or style needs to be reset by reset all modes (0) ANSI code. Better Stack Logs & traces doesn't support resetting a color or a style by starting a new one.

Colors in non-message fields

Logs & traces automatically recognizes and renders ANSI color codes in your main message content. However, when you want to display colors in other fields (like custom fields, context data, or structured log properties), you need to explicitly tell Logs & traces to treat them as text that may contain color formatting.

Use the ::text syntax to enable color rendering in non-message fields:

Example with color formatting in custom fields
{custom.msg::text}

Coalescing fields with colors

When using coalescing (the | operator), add ::text at the end of the entire field expression:

Coalescing with color formatting
{message_json.msg|message::text}

Note that ::text applies to the whole coalesced field, not individual parts.