mirror of
https://github.com/Nanaloveyuki/BitLogger.git
synced 2026-05-30 15:42:25 +00:00
📝 Add configured logger runtime control API docs
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
---
|
||||
name: configured-logger-pending-count
|
||||
group: api
|
||||
category: runtime
|
||||
update-time: 20260512
|
||||
description: Read the current queued backlog count from a configured runtime logger.
|
||||
key-word:
|
||||
- logger
|
||||
- runtime
|
||||
- queue
|
||||
- public
|
||||
---
|
||||
|
||||
## Configured-logger-pending-count
|
||||
|
||||
Read the current queued backlog count from a `ConfiguredLogger`. This is the direct runtime metric for config-driven queue wrapping.
|
||||
|
||||
### Interface
|
||||
|
||||
```moonbit
|
||||
pub fn ConfiguredLogger::pending_count(self : ConfiguredLogger) -> Int {}
|
||||
```
|
||||
|
||||
#### input
|
||||
|
||||
- `self : ConfiguredLogger` - Config-driven runtime logger whose queue backlog should be inspected.
|
||||
|
||||
#### output
|
||||
|
||||
- `Int` - Current number of pending queued records.
|
||||
|
||||
### Explanation
|
||||
|
||||
Detailed rules explaining key parameters and behaviors
|
||||
|
||||
- Queue-backed sinks return their live pending count.
|
||||
- Non-queued sinks report `0`.
|
||||
- This is a point-in-time metric and may change immediately after it is read.
|
||||
- This helper delegates to `RuntimeSink::pending_count(...)` through the configured logger wrapper.
|
||||
|
||||
### How to Use
|
||||
|
||||
Here are some specific examples provided.
|
||||
|
||||
#### When Need Configured Queue Backlog Visibility
|
||||
|
||||
When a config-built logger should expose queue pressure:
|
||||
```moonbit
|
||||
let pending = logger.pending_count()
|
||||
```
|
||||
|
||||
In this example, queue backlog is observed without reaching into the sink internals.
|
||||
|
||||
#### When Verify Manual Drain Progress
|
||||
|
||||
When drain loops should observe remaining backlog:
|
||||
```moonbit
|
||||
ignore(logger.drain(max_items=8))
|
||||
ignore(logger.pending_count())
|
||||
```
|
||||
|
||||
In this example, the queue metric helps verify manual drain progress.
|
||||
|
||||
### Error Case
|
||||
|
||||
e.g.:
|
||||
- If the logger is not queue-backed, the method simply returns `0`.
|
||||
|
||||
- If callers need richer file-plus-queue state for file sinks, `file_runtime_state()` is the better API.
|
||||
|
||||
### Notes
|
||||
|
||||
1. Use this helper for simple queue visibility on config-built loggers.
|
||||
|
||||
2. Pair it with `dropped_count()` when investigating loss behavior.
|
||||
Reference in New Issue
Block a user