Skip to content

Record-with-message

Return a copy of a Record with a different message. This helper is the narrowest way to rewrite the visible event text while preserving the rest of the structured event data.

Interface

moonbit
pub fn Record::with_message(self : Record, message : String) -> Record {}

input

  • self : Record - Base record whose message should be replaced.
  • message : String - New message text for the returned record.

output

  • Record - New record value carrying the updated message.

Explanation

Detailed rules explaining key parameters and behaviors

  • This helper returns a new record value instead of mutating the original one.
  • Only the message field is replaced.
  • level, timestamp_ms, target, and fields are preserved.
  • This is useful for adapters, tests, or explicit value-level rewriting before formatting or sink dispatch.

How to Use

Here are some specific examples provided.

When Need To Rewrite One Event Message

When one record should keep its metadata but use different visible text:

moonbit
let rec = Record::new(Level::Error, "raw failure", target="bridge")
let next = rec.with_message("dispatch failed")

In this example, the new message is applied without rebuilding the rest of the record manually.

When Need To Normalize Message Text In Tests

When one test record should be adapted to a different wording:

moonbit
let rec = Record::new(Level::Info, "ok").with_message("started")

In this example, the helper keeps the change focused on one field.

Error Case

e.g.:

  • If message is empty, the returned record is still valid and simply carries an empty message string.

  • If the same rewrite should be reusable across many records, prefix_message(...) or a custom RecordPatch may be a better fit.

Notes

  1. Use this helper for one-off value-level message replacement.

  2. Use patch helpers when message rewriting should participate in a reusable logger pipeline.

Published from the repository docs folder with VitePress.