Files
BitLogger/docs/api/parse-async-logger-build-config-text.md
T
2026-05-12 13:20:36 +08:00

2.4 KiB

name, group, category, update-time, description, key-word
name group category update-time description key-word
parse-async-logger-build-config-text api async 20260512 Parse combined sync logger and async runtime JSON into a typed async build configuration.
async
parse
config
public

Parse-async-logger-build-config-text

Parse JSON text into AsyncLoggerBuildConfig. This API validates both the synchronous logger portion and the async queue/runtime portion before any async logger is built.

Interface

pub fn parse_async_logger_build_config_text(input : String) -> AsyncLoggerBuildConfig raise {}

input

  • input : String - JSON text containing logger and async_config sections.

output

  • AsyncLoggerBuildConfig - Typed build config ready for build_async_logger(...) or build_async_text_logger(...).

Explanation

Detailed rules explaining key parameters and behaviors

  • The JSON root is split into logger and async_config.
  • logger reuses the same synchronous config schema parsed by parse_logger_config_text(...).
  • async_config is parsed through parse_async_logger_config_text(...).
  • This API separates validation from actual async runtime construction.

How to Use

Here are some specific examples provided.

When Need Config-driven Async Bootstrapping

When both sink config and async runtime config come from JSON:

let config = parse_async_logger_build_config_text(raw) catch {
  err => return
}
let logger = build_async_logger(config)

In this example, parsing and runtime construction remain separate and testable.

When Need To Inspect Async Build Config Before Use

When config should be validated or reviewed before build:

let config = parse_async_logger_build_config_text(raw) catch {
  err => return
}
println(config.logger.target)

In this example, parsed sync and async sections can be inspected independently.

Error Case

e.g.:

  • If the root is not an object, parsing fails.

  • If either logger or async_config contains invalid schema values, parsing fails through the underlying config parsers.

Notes

Notes are here.

  1. Use this API when async build config is stored as JSON.

  2. Use AsyncLoggerBuildConfig::new(...) when assembling config directly in code.

  3. Pair this API with build_async_logger(...) after validation.

  4. The split logger plus async_config shape keeps sync and async concerns explicit.