📝 clarify library async child facade preservation

This commit is contained in:
Nanaloveyuki
2026-06-14 10:53:59 +08:00
parent 5bb5a75ea7
commit 22f5204262
+7 -4
View File
@@ -2,8 +2,8 @@
name: library-async-logger-child name: library-async-logger-child
group: api group: api
category: facade category: facade
update-time: 20260613 update-time: 20260614
description: Derive a child LibraryAsyncLogger facade by composing the current target with a child segment while rewrapping the same underlying async logger state. description: Derive a child LibraryAsyncLogger facade by composing the current target with a child segment while rewrapping the derived async logger state behind the same library-facing surface.
key-word: key-word:
- async - async
- library - library
@@ -37,11 +37,12 @@ pub fn[S] LibraryAsyncLogger::child(
Detailed rules explaining key parameters and behaviors Detailed rules explaining key parameters and behaviors
- This API delegates to the wrapped async logger's `child(...)` behavior and then re-wraps the result. - This API delegates to the wrapped async logger's `child(...)` behavior and then re-wraps the result as another `LibraryAsyncLogger[S]`.
- If the parent target is empty, the child target becomes the full target. - If the parent target is empty, the child target becomes the full target.
- If the child target is empty, the parent target is preserved. - If the child target is empty, the parent target is preserved.
- If both are non-empty, they are joined with `.`. - If both are non-empty, they are joined with `.`.
- Sink type, queue state, async config, and failure/lifecycle state remain the same because only the derived default target changes. - The original facade is not mutated. The returned facade stores the derived child target while the source facade keeps its previous parent target.
- Timestamp behavior, enabled-level gating, sink type, queue state, async config, and failure/lifecycle state remain the same because only the derived default target changes.
- Async state helpers remain hidden behind the narrower facade after rewrapping; use `to_async_logger()` if later code needs them. - Async state helpers remain hidden behind the narrower facade after rewrapping; use `to_async_logger()` if later code needs them.
### How to Use ### How to Use
@@ -72,6 +73,8 @@ In this example, the final facade emits under `sdk.http.client`.
And the target derivation does not rebuild or reset the wrapped async logger state. And the target derivation does not rebuild or reset the wrapped async logger state.
The derived facade still uses the same timestamp and level-gating behavior as the source facade.
### Error Case ### Error Case
e.g.: e.g.: