Files
BitLogger/docs/api/async-logger-build-config.md
T
2026-06-13 22:44:36 +08:00

2.8 KiB

name, group, category, update-time, description, key-word
name group category update-time description key-word
async-logger-build-config api async 20260613 Create the combined sync-and-async build config used by async logger builder APIs.
async
build
config
public

Async-logger-build-config

Create an AsyncLoggerBuildConfig value that combines the base synchronous LoggerConfig with the async runtime AsyncLoggerConfig. This is the constructor used when async builder APIs should receive one typed object carrying both layers of setup.

Interface

pub fn AsyncLoggerBuildConfig::new(
  logger~ : @bitlogger.LoggerConfig = @bitlogger.default_logger_config(),
  async_config~ : AsyncLoggerConfig = AsyncLoggerConfig::new(),
) -> AsyncLoggerBuildConfig {

input

  • logger : LoggerConfig - Base synchronous logger config describing the sink, level, target, and related sync logger settings.
  • async_config : AsyncLoggerConfig - Async runtime config describing queue, batching, linger, and flush behavior.

output

  • AsyncLoggerBuildConfig - Combined build config used by async logger build and parse helpers.

Explanation

Detailed rules explaining key parameters and behaviors

  • Omitting logger uses default_logger_config().
  • Omitting async_config uses AsyncLoggerConfig::new().
  • The constructor simply packages both config objects into one public build shape.
  • This helper is the main code-side counterpart to parse_async_logger_build_config_text(...).

How to Use

Here are some specific examples provided.

When Need One Typed Object For Async Builder Input

When sync sink setup and async runtime policy should travel together through build code:

let config = AsyncLoggerBuildConfig::new(
  logger=@bitlogger.LoggerConfig::new(target="svc.async"),
  async_config=AsyncLoggerConfig::new(max_pending=64, max_batch=8),
)

In this example, the builder input keeps both configuration layers in one typed value.

When Need Defaulted Async Build Settings

When code only wants the standard combined config shape with few overrides:

let config = AsyncLoggerBuildConfig::new(async_config=AsyncLoggerConfig::new(max_batch=4))

In this example, the base sync logger config falls back to its default value automatically.

Error Case

e.g.:

  • This constructor itself does not have a normal failure mode; it only packages configuration values.

  • If callers only need async runtime policy and not the full builder input shape, AsyncLoggerConfig::new(...) is the smaller API.

Notes

  1. Use this helper when async builder APIs should receive one combined config object.

  2. Pair it with build_async_logger(...), build_async_text_logger(...), or parse_async_logger_build_config_text(...) depending on whether the source is code or JSON text.