Files
BitLogger/docs/api/file-sink-state.md
T
2026-06-13 23:42:09 +08:00

72 lines
2.2 KiB
Markdown

---
name: file-sink-state
group: api
category: runtime
update-time: 20260613
description: Public file state alias used for live file-sink snapshots and runtime diagnostics.
key-word:
- file
- state
- alias
- public
---
## File-sink-state
`FileSinkState` is the public snapshot object used to describe the current state of a file sink. It is a direct alias to the file state model returned by `FileSink::state()` and by higher-level runtime file inspection helpers.
### Interface
```moonbit
pub type FileSinkState = @utils.FileSinkState
```
#### output
- `FileSinkState` - Public file state snapshot containing path, availability, policy flags, optional rotation, and failure counters.
### Explanation
Detailed rules explaining key parameters and behaviors
- This is a type alias, not a live file handle wrapper.
- The current snapshot fields are `path`, `available`, `append`, `auto_flush`, `rotation`, `open_failures`, `write_failures`, `flush_failures`, and `rotation_failures`.
- `FileSink::state()` returns this object directly for a concrete file sink.
- `RuntimeSink::file_state()` also returns this type, including fallback snapshots for non-file runtime sinks.
- `ConfiguredLogger::file_state()` returns the same snapshot type through the config-built runtime wrapper.
### How to Use
Here are some specific examples provided.
#### When Need A One-shot File Health Snapshot
When file runtime diagnostics should be read as one object:
```moonbit
let state = sink.state()
```
In this example, availability, policy, and failure counters are captured together.
#### When Need To Export File Diagnostics
When a snapshot should be serialized for logs or support output:
```moonbit
println(stringify_file_sink_state(runtime.file_state(), pretty=true))
```
In this example, the typed snapshot becomes readable JSON without manual field assembly.
### Error Case
e.g.:
- `FileSinkState` itself does not have a runtime failure mode.
- If the sink is unavailable, the snapshot still exists and reports `available=false` together with the current counters.
### Notes
1. Use this object for one-shot file diagnostics instead of many narrow reads.
2. Use `RuntimeFileState` when queue-related file runtime context is also required.