Skip to content

Async-logger-info

Enqueue an info-level record through the async logger. This is the convenience wrapper for log(Level::Info, ...).

Interface

moonbit
pub async fn[S] AsyncLogger::info(
  self : AsyncLogger[S],
  message : String,
  fields~ : Array[@bitlogger.Field] = [],
) -> Unit {}

input

  • self : AsyncLogger[S] - Async logger that should receive the info record.
  • message : String - Info message text.
  • fields : Array[Field] - Optional structured fields added to the record.

output

  • Unit - No return value. The record is handled according to logger state and policy.

Explanation

Detailed rules explaining key parameters and behaviors

  • This helper delegates to log(Level::Info, ..., fields=fields).
  • The record is still subject to min-level gating, patching, filtering, and overflow policy.
  • This helper does not accept a per-call target override. It uses the logger's stored target unless the logger was derived earlier with with_target(...) or child(...).
  • Info is often the default operational logging level for async application events.
  • Use this helper when explicit info intent is clearer than a raw log(...) call.

How to Use

Here are some specific examples provided.

When Need Normal Operational Async Events

When async code should report routine progress or lifecycle events:

moonbit
logger.info("worker started")

In this example, the event is expressed at the most common operational logging level.

When Add Structured Operational Metadata

When an info event should include stable structured detail:

moonbit
logger.info(
  "job queued",
  fields=[@bitlogger.field("queue", "sync")],
)

In this example, the record remains concise while still carrying useful metadata.

And any shared context already carried by the logger still participates ahead of these per-call fields when the record is built.

The write still uses the logger's stored target because this shortcut does not take a one-off target= override.

Error Case

e.g.:

  • If the logger minimum level is above Info, the record is skipped before enqueue.

  • If the logger is closed or overflow policy prevents acceptance, the write may not become a normal queued record.

Notes

  1. This is often the most common convenience method for normal async application events.

  2. Use log(...) when the call site needs a dynamic level or a one-off target override.

Published from the repository docs folder with VitePress.