Advanced guide

Live tail message format

Live tail output of each source can be customized in Live tail by clicking on the gear icon in the upper right corner:

Xnapper-2024-10-10-16.23.15.png

The Live tail message format is a freeform text template with columns wrapped in {column} brackets.

Live tail message format example
LEVEL: {level}, PID: {context.system.pid}, THREAD: {context.runtime.thread_id}

Conditional rendering can be achieved by piping multiple values

Live tail 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:

Live tail 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 Live tail:

live-tail.png

Supported colors

Live tail 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 Live tail doesn't support resetting a color or a style by starting a new one.

Colors in non-message fields

Live tail 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 Live tail 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.