4.2 KiB
name, group, category, update-time, description, key-word
| name | group | category | update-time | description | key-word | ||||
|---|---|---|---|---|---|---|---|---|---|
| async-logger-build-config-type | api | async | 20260614 | Public async build config alias combining the base logger config and async runtime config for both the general async builder path and the specialized text-console builder path. |
|
Async-logger-build-config-type
AsyncLoggerBuildConfig is the public config object that combines the base synchronous LoggerConfig with the async runtime AsyncLoggerConfig. It is a direct alias to the build-config model used by async builder APIs, parsers, and serializers, even though the available builders consume different parts of the embedded sync config.
Interface
pub type AsyncLoggerBuildConfig = @utils.AsyncLoggerBuildConfig
output
AsyncLoggerBuildConfig- Public async build config object containingloggerandasync_config.
Explanation
Detailed rules explaining key parameters and behaviors
- This is a type alias, not a built logger instance.
- The current fields are
logger : LoggerConfigandasync_config : AsyncLoggerConfig. - The public
src-asyncsurface forwards this alias directly from@utils.AsyncLoggerBuildConfig, so constructor, parser, export, and stringify helpers all operate on one shared underlying build-config model. AsyncLoggerBuildConfig::new(...)constructs this type as the main handoff object for async build flows.build_async_logger(...),build_async_text_logger(...),parse_async_logger_build_config_text(...),async_logger_build_config_to_json(...), andstringify_async_logger_build_config(...)all consume or produce this same public shape.build_async_logger(...)consumes the full sync build path by callingbuild_logger(config.logger)first, soLoggerConfig.sink,LoggerConfig.queue, and the resulting runtime sink behavior all participate before the async layer is added.build_async_text_logger(...)is narrower: it builds a text console sink directly fromconfig.logger.sink.text_formatterand the top-levelmin_level,target, andtimestampfields, without applyingLoggerConfig.queue.
How to Use
Here are some specific examples provided.
When Need One Typed Object For Full Async Logger Setup
When sync sink setup and async runtime policy should move together through application boot code:
let config : AsyncLoggerBuildConfig = AsyncLoggerBuildConfig::new(
logger=@bitlogger.LoggerConfig::new(target="svc"),
async_config=AsyncLoggerConfig::new(max_pending=64),
)
In this example, both layers of logger setup are kept in one typed value.
And downstream code can still choose between the full sync-first builder path and the narrower text-console builder path.
When Need To Export Or Inspect The Full Build Shape
When application code should inspect the combined async build configuration before constructing the logger:
let config = AsyncLoggerBuildConfig::new(async_config=AsyncLoggerConfig::new(max_batch=4))
println(stringify_async_logger_build_config(config, pretty=true))
In this example, the same public config object supports both review and later build steps.
Error Case
e.g.:
-
AsyncLoggerBuildConfigitself does not have a runtime failure mode. -
If only async runtime policy is needed and the base sync logger config is irrelevant, this type may be broader than necessary and
AsyncLoggerConfigis the smaller fit. -
If callers expect every
LoggerConfigfield to affect every async builder in the same way, that assumption is too broad: the text-specific builder intentionally ignores the optional sync queue layer.
Notes
-
Use
AsyncLoggerBuildConfig::new(...)when one object should carry both sync and async logger setup. -
Use
parse_async_logger_build_config_text(...)when the same shape should come from JSON text instead of handwritten code. -
Pick
build_async_logger(...)when the full synchronous config path, includingLoggerConfig.queue, should be preserved before async wrapping. -
Pick
build_async_text_logger(...)when the goal is specifically a concrete text console sink and only the selected text-orientedLoggerConfigfields should apply.