Text-formatter-with-target-style-markup
Return a copy of a TextFormatter with a different target-text style-markup policy. This method is the focused way to control whether inline tags inside rendered targets are interpreted while preserving the formatter's message and field behavior.
Interface
pub fn TextFormatter::with_target_style_markup(
self : TextFormatter,
style_markup : StyleMarkupMode,
) -> TextFormatter {input
self : TextFormatter- Base formatter to copy.style_markup : StyleMarkupMode- New target-text markup policy.
output
TextFormatter- A new formatter value carrying the updated target markup setting.
Explanation
Detailed rules explaining key parameters and behaviors
- This method only changes
target_style_markup, which controls rendered target text. - The returned formatter preserves timestamp, level, message markup, field markup, template, color, and registry settings from
self. - Message and field-value markup settings remain unchanged because each scope is configured independently.
- The original formatter value is not mutated.
How to Use
Here are some specific examples provided.
When Need Styled Targets But Literal Messages
When targets may carry semantic tags while messages should remain plain text:
let formatter = text_formatter(color_mode=ColorMode::Always)
.without_style_markup()
.with_target_style_markup(StyleMarkupMode::Builtin)In this example, target rendering can parse built-in tags while message text stays literal.
When Need To Disable Target Tag Parsing Explicitly
When code should keep every formatter setting except target markup behavior:
let base = text_formatter(color_mode=ColorMode::Always, target_style_markup=StyleMarkupMode::Full)
let safe = base.with_target_style_markup(StyleMarkupMode::Disabled)In this example, only the target markup scope changes.
Error Case
e.g.:
There is no separate failure path for valid
TextFormatterandStyleMarkupModevalues.If callers need message or field-value markup changes too, they must use the dedicated formatter methods for those scopes.
Notes
This method only affects target rendering.
It is useful when target namespaces use a different markup policy than the main message body.