Skip to content

Json-console-sink ​

Create the built-in JSON console sink. This sink writes records as structured JSON text and is useful when stdout is consumed by machines rather than humans.

Interface ​

moonbit
pub fn json_console_sink() -> JsonConsoleSink {

output ​

  • JsonConsoleSink - Sink that writes records to the console as JSON.

Explanation ​

Detailed rules explaining key parameters and behaviors

  • This sink emits JSON rather than human-focused text formatting.
  • It is a direct synchronous sink that can be passed to Logger::new(...).
  • Use it when structured logs should be parsed, shipped, or inspected programmatically.

How to Use ​

Here are some specific examples provided.

When Need Structured Stdout Logs ​

When log consumers expect machine-readable output:

moonbit
let logger = Logger::new(json_console_sink(), target="api")
logger.info("ready", fields=[field("service", "bitlogger")])

In this example, the emitted console line is JSON-shaped.

Error Case ​

e.g.:

  • If human-focused text formatting is required, use a text console sink instead.

  • Console output still depends on the current runtime environment.

Notes ​

  1. This sink is useful for structured stdout pipelines.

  2. It pairs naturally with field-heavy logging.

Published from the repository docs folder with VitePress.