Skip to content

Text-formatter-with-style-markup

Return a copy of a TextFormatter with a different message-text style-markup policy. This method is the focused way to change how inline tags inside the main log message are interpreted while preserving the rest of the formatter configuration.

Interface

moonbit
pub fn TextFormatter::with_style_markup(self : TextFormatter, style_markup : StyleMarkupMode) -> TextFormatter {

input

  • self : TextFormatter - Base formatter to copy.
  • style_markup : StyleMarkupMode - New message-text markup policy.

output

  • TextFormatter - A new formatter value carrying the updated message markup setting.

Explanation

Detailed rules explaining key parameters and behaviors

  • This method only changes style_markup, which controls the main message text.
  • The returned formatter preserves timestamp, level, target, field, template, color, and registry settings from self.
  • Target and field-value markup settings remain unchanged because they have separate dedicated scopes.
  • The original formatter value is not mutated.

How to Use

Here are some specific examples provided.

When Need To Restrict Message Tags To Built-ins

When messages should allow built-in tags but not custom registry-driven tags:

moonbit
let formatter = text_formatter(color_mode=ColorMode::Always)
  .with_style_markup(StyleMarkupMode::Builtin)

In this example, message rendering switches to built-in-only tag resolution while the rest of the formatter stays the same.

When Need To Reuse One Formatter With Different Message Policies

When a shared base formatter should produce one literal and one styled variant:

moonbit
let base = text_formatter(color_mode=ColorMode::Always)
let literal = base.with_style_markup(StyleMarkupMode::Disabled)
let rich = base.with_style_markup(StyleMarkupMode::Full)

In this example, both derived formatters keep the same non-markup configuration.

Error Case

e.g.:

  • There is no separate failure path for valid TextFormatter and StyleMarkupMode values.

  • If callers need to change target or field markup behavior too, they must use the corresponding dedicated formatter methods instead of assuming this changes every scope.

Notes

  1. This method only affects the main message text, not target text or field values.

  2. without_style_markup() is the convenience form for the common disabled case.

Published from the repository docs folder with VitePress.