Files
BitLogger/docs/api/stringify-async-logger-build-config.md
2026-05-12 13:47:04 +08:00

76 lines
2.1 KiB
Markdown

---
name: stringify-async-logger-build-config
group: api
category: async
update-time: 20260512
description: Serialize AsyncLoggerBuildConfig into compact or pretty JSON text for export and diagnostics.
key-word:
- async
- build
- stringify
- public
---
## Stringify-async-logger-build-config
Serialize `AsyncLoggerBuildConfig` into JSON text. This helper is the most direct export path when a full async logger setup should be printed, logged, or stored as JSON text.
### Interface
```moonbit
pub fn stringify_async_logger_build_config(
config : AsyncLoggerBuildConfig,
pretty~ : Bool = false,
) -> String {}
```
#### input
- `config : AsyncLoggerBuildConfig` - Full async logger build config to serialize.
- `pretty : Bool` - Whether JSON should be pretty-printed.
#### output
- `String` - Serialized JSON text for the full build config.
### Explanation
Detailed rules explaining key parameters and behaviors
- `pretty=false` returns compact JSON.
- `pretty=true` returns indented JSON for human inspection.
- This helper is built on top of `async_logger_build_config_to_json(...)`.
- The output keeps `logger` and `async_config` as separate sections, matching supported parser input.
### How to Use
Here are some specific examples provided.
#### When Need Human-readable Full Async Setup
When both logger and async policy should be inspected together:
```moonbit
println(stringify_async_logger_build_config(AsyncLoggerBuildConfig::new(), pretty=true))
```
In this example, the full build configuration is rendered as readable JSON.
#### When Need Compact Generated Build Config
When config text should stay small for snapshots or transport:
```moonbit
let text = stringify_async_logger_build_config(
AsyncLoggerBuildConfig::new(async_config=AsyncLoggerConfig::new(max_batch=4)),
)
```
In this example, compact JSON is returned without extra formatting.
### Error Case
e.g.:
- If callers need a `JsonValue` for further composition, they should use `async_logger_build_config_to_json(...)` instead.
- If only one layer of config is required, this helper may be broader than necessary.