mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-08-01 07:54:47 +00:00
📝 clarify library async child facade preservation
This commit is contained in:
@@ -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.:
|
||||||
|
|||||||
Reference in New Issue
Block a user