2.8 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.
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.