Files
BitLogger/docs/api/build-application-async-logger.md
Nanaloveyuki 25a6a973d2 πŸ“ Update More API Document
2026-05-20 11:37:49 +08:00

1.9 KiB

name, group, category, update-time, description, key-word
name group category update-time description key-word
build-application-async-logger api facade 20260520 Build the application-facing async logger facade from an AsyncLoggerBuildConfig.
application
async
facade
public

Build-application-async-logger

Build an ApplicationAsyncLogger from AsyncLoggerBuildConfig. This is the application-facing async facade over build_async_logger(...).

Interface

pub fn build_application_async_logger(
  config : AsyncLoggerBuildConfig,
) -> ApplicationAsyncLogger {

input

  • config : AsyncLoggerBuildConfig - Combined sync logger config and async queue/runtime config.

output

  • ApplicationAsyncLogger - Application-facing async runtime logger.

Explanation

Detailed rules explaining key parameters and behaviors

  • This API delegates to build_async_logger(...).
  • The returned logger keeps the standard async lifecycle and state helper surface.
  • Use this facade when application code wants a dedicated async app-level entry point.

How to Use

Here are some specific examples provided.

When Need Config-driven App Async Boot

When both sync sink shape and async queue policy are assembled as typed config:

let logger = build_application_async_logger(
  AsyncLoggerBuildConfig::new(
    logger=LoggerConfig::new(target="app.async"),
    async_config=AsyncLoggerConfig::new(max_pending=8),
  ),
)

In this example, the app-facing async facade is built directly from typed config.

Error Case

e.g.:

  • If file output is selected on a backend without native file support, backend behavior still applies when the worker drains records.

  • If the logger is never run(), enqueue behavior and lifecycle state still follow the normal async logger rules.

Notes

  1. This is a facade over the existing async runtime logger builder.

  2. Use parse_and_build_application_async_logger(...) when starting from JSON text.