📝 refine library logger entry docs

This commit is contained in:
Nanaloveyuki
2026-06-14 01:20:04 +08:00
parent 888be5b6fc
commit 47de8dc99a
3 changed files with 21 additions and 6 deletions
+7 -2
View File
@@ -3,7 +3,7 @@ name: build-library-logger
group: api group: api
category: facade category: facade
update-time: 20260613 update-time: 20260613
description: Build the library-facing sync logger facade from a LoggerConfig and intentionally hide direct runtime helper methods. description: Build the library-facing sync logger facade from a LoggerConfig by delegating to the configured runtime logger build path and then wrapping the result.
key-word: key-word:
- library - library
- facade - facade
@@ -33,7 +33,8 @@ pub fn build_library_logger(config : LoggerConfig) -> LibraryLogger[RuntimeSink]
Detailed rules explaining key parameters and behaviors Detailed rules explaining key parameters and behaviors
- This API builds a configured runtime logger first and then wraps it as `LibraryLogger[RuntimeSink]`. - This API builds a configured runtime logger first and then wraps that same value as `LibraryLogger[RuntimeSink]`.
- The embedded config still goes through the normal runtime logger build path, including runtime sink selection, optional queue wrapping, and timestamp application.
- The facade intentionally exposes a smaller logging surface than the full configured runtime logger. - The facade intentionally exposes a smaller logging surface than the full configured runtime logger.
- Queue metrics, flush and drain helpers, and file runtime controls remain on the underlying `ConfiguredLogger`, not on the returned facade itself. - Queue metrics, flush and drain helpers, and file runtime controls remain on the underlying `ConfiguredLogger`, not on the returned facade itself.
- Call `to_logger()` if a caller must recover the underlying full logger object. - Call `to_logger()` if a caller must recover the underlying full logger object.
@@ -64,6 +65,8 @@ ignore(full.pending_count())
In this example, the library facade is unwrapped before using configured runtime helper methods. In this example, the library facade is unwrapped before using configured runtime helper methods.
And the unwrapped value still carries the same `RuntimeSink` pipeline built from the original config.
### Error Case ### Error Case
e.g.: e.g.:
@@ -76,3 +79,5 @@ e.g.:
1. Prefer this facade when library APIs should not expose the full configured runtime logger type. 1. Prefer this facade when library APIs should not expose the full configured runtime logger type.
2. Use `parse_and_build_library_logger(...)` when starting from JSON text. 2. Use `parse_and_build_library_logger(...)` when starting from JSON text.
3. Use `to_logger()` when internal code later needs configured-runtime helpers or broader logger composition without changing the public facade type.
+6 -1
View File
@@ -3,7 +3,7 @@ name: default-library-logger
group: api group: api
category: facade category: facade
update-time: 20260520 update-time: 20260520
description: Create the default library-facing console logger facade from shared global defaults. description: Create the default library-facing console logger facade by wrapping the current shared default logger at call time.
key-word: key-word:
- library - library
- facade - facade
@@ -32,6 +32,7 @@ Detailed rules explaining key parameters and behaviors
- This API wraps `default_logger()` as a library facade. - This API wraps `default_logger()` as a library facade.
- Each call reflects the current shared default minimum level and default target at that moment. - Each call reflects the current shared default minimum level and default target at that moment.
- The returned value exposes the narrower `LibraryLogger` surface rather than the full `Logger` surface. - The returned value exposes the narrower `LibraryLogger` surface rather than the full `Logger` surface.
- Later changes to shared defaults do not mutate an already-created facade value because the wrapped logger is captured when `default_library_logger()` is called.
### How to Use ### How to Use
@@ -49,6 +50,8 @@ if logger.is_enabled(Level::Info) {
In this example, the library facade mirrors the current global defaults. In this example, the library facade mirrors the current global defaults.
And if the caller later unwraps it with `to_logger()`, the same captured default target and minimum level are still present on the full logger value.
### Error Case ### Error Case
e.g.: e.g.:
@@ -61,3 +64,5 @@ e.g.:
1. Use `to_logger()` if callers need the full sync logger surface. 1. Use `to_logger()` if callers need the full sync logger surface.
2. This helper is useful for library-facing APIs that should stay narrower than `Logger`. 2. This helper is useful for library-facing APIs that should stay narrower than `Logger`.
3. Call `default_library_logger()` again after shared default changes if a fresh facade value should reflect the new defaults.
+8 -3
View File
@@ -3,7 +3,7 @@ name: parse-and-build-library-logger
group: api group: api
category: facade category: facade
update-time: 20260613 update-time: 20260613
description: Parse JSON logger config text and build the library-facing sync logger facade while intentionally hiding direct runtime helper methods. description: Parse JSON logger config text and build the library-facing sync logger facade by delegating to the configured runtime logger parse-and-build path and then wrapping the result.
key-word: key-word:
- library - library
- facade - facade
@@ -13,7 +13,7 @@ key-word:
## Parse-and-build-library-logger ## Parse-and-build-library-logger
Parse raw JSON config text and build a `LibraryLogger[RuntimeSink]` in one step. This facade is the text-driven library counterpart to `parse_and_build_logger(...)`. Parse raw JSON config text and build a `LibraryLogger[RuntimeSink]` in one step. This facade is the text-driven library counterpart to `parse_and_build_logger(...)` plus library-surface narrowing.
### Interface ### Interface
@@ -35,7 +35,8 @@ pub fn parse_and_build_library_logger(
Detailed rules explaining key parameters and behaviors Detailed rules explaining key parameters and behaviors
- This API parses config text, validates it, builds the configured logger, and wraps it as a library facade. - This API parses config text, validates it, builds the configured logger through `parse_and_build_logger(...)`, and wraps that same value as a library facade.
- The parsed config still goes through the normal configured runtime logger build path, including runtime sink selection, optional queue wrapping, and timestamp application.
- The returned facade keeps a narrower surface than the underlying configured logger. - The returned facade keeps a narrower surface than the underlying configured logger.
- Queue metrics, flush and drain helpers, and file runtime controls stay on the underlying `ConfiguredLogger`, not on the returned facade itself. - Queue metrics, flush and drain helpers, and file runtime controls stay on the underlying `ConfiguredLogger`, not on the returned facade itself.
- `to_logger()` can be used to recover the underlying full logger object when necessary. - `to_logger()` can be used to recover the underlying full logger object when necessary.
@@ -68,6 +69,8 @@ ignore(full.pending_count())
In this example, the caller unwraps the library facade before using configured runtime helper methods. In this example, the caller unwraps the library facade before using configured runtime helper methods.
And the unwrapped value still reflects the same `RuntimeSink` pipeline built from the parsed config text.
### Error Case ### Error Case
e.g.: e.g.:
@@ -82,3 +85,5 @@ e.g.:
1. This is the narrow library-oriented parse-and-build sync entry point. 1. This is the narrow library-oriented parse-and-build sync entry point.
2. Use `build_library_logger(...)` when the config is already typed. 2. Use `build_library_logger(...)` when the config is already typed.
3. Use `to_logger()` when internal code later needs configured-runtime helpers or broader logger composition without changing the public facade type.