3.0 KiB
name, group, category, update-time, description, key-word
| name | group | category | update-time | description | key-word | ||||
|---|---|---|---|---|---|---|---|---|---|
| async-logger-state-type | api | async | 20260614 | Public async logger state alias used for queue, lifecycle, runtime, and flush-policy diagnostics. |
|
Async-logger-state-type
AsyncLoggerState is the public snapshot type used to describe an async logger's runtime status. It is a direct alias to the async logger state model returned by AsyncLogger::state() and used by async diagnostics serializers.
Interface
pub type AsyncLoggerState = @utils.AsyncLoggerState
output
AsyncLoggerState- Public async logger snapshot containingruntime,pending_count,dropped_count,is_closed,is_running,has_failed,last_error, andflush_policy.
Explanation
Detailed rules explaining key parameters and behaviors
- This is a type alias, not a live logger handle.
- The
runtimefield embeds anAsyncRuntimeStatesnapshot. - The remaining fields capture queue counts, lifecycle status, failure state, last error text, and active flush policy.
AsyncLogger::state()returns this type directly, whileasync_logger_state_to_json(...)andstringify_async_logger_state(...)export the same data shape for diagnostics.AsyncLogger::state()currently builds this snapshot fromasync_runtime_state()plus the logger's current counters, lifecycle flags, last error, and flush policy.AsyncLoggerState::new(...)can also construct this type manually, but manual construction is synthetic snapshot data and does not read one live logger instant by itself.
How to Use
Here are some specific examples provided.
When Need A Typed Snapshot For Async Diagnostics
When application code should inspect async logger state before deciding how to report it:
let state : AsyncLoggerState = logger.state()
In this example, queue, lifecycle, and runtime information stay available as structured data.
When Need To Branch On Failure Or Backlog
When code should react to the current async logger condition:
let state = logger.state()
if state.has_failed || state.pending_count > 0 {
println(stringify_async_logger_state(state, pretty=true))
}
In this example, the typed snapshot supports both logic and later export.
Error Case
e.g.:
-
AsyncLoggerStateitself does not have a runtime failure mode. -
last_errormay be an empty string when no failure has occurred, which is normal and not a special error condition by itself. -
Because this is just a data shape, manual construction can represent combinations that do not come from a live logger at one exact instant.
Notes
-
Use
AsyncLogger::state()when you need a value of this type from one logger instance. -
Use
AsyncRuntimeStatewhen only backend-level capability information is needed and logger-instance state is unnecessary. -
Use
async_logger_state_to_json(...)orstringify_async_logger_state(...)when this snapshot should leave typed space and become stable diagnostic output.