2.7 KiB
name, group, category, update-time, description, key-word
| name | group | category | update-time | description | key-word | ||||
|---|---|---|---|---|---|---|---|---|---|
| runtime-sink-file-flush | api | runtime | 20260614 | Flush the file sink behind a RuntimeSink when one is present. |
|
Runtime-sink-file-flush
Flush the file sink behind a RuntimeSink. This helper is the direct file-specific runtime flush surface for code that owns a sink value instead of a ConfiguredLogger.
Interface
pub fn RuntimeSink::file_flush(self : RuntimeSink) -> Bool {
input
self : RuntimeSink- Runtime sink whose file sink should be flushed.
output
Bool- Whether the underlying file flush succeeded.
Explanation
Detailed rules explaining key parameters and behaviors
- Plain
Fileruntime variants forward directly toFileSink::flush(). QueuedFileruntime variants first attemptsink.flush()on the queue wrapper, then callsink.sink.flush()on the wrapped file sink.- For
QueuedFile, the queue flush result is ignored and the returnedBoolcomes from the inner file flush. - For
QueuedFile, this step may also be the point where queued records finally reach the inner file sink, so write-failure counters can change here even if earlierlog(...)calls only enqueued records. - Non-file runtime variants return
false. - After a file-backed runtime sink has already cleared its handle, later
file_flush()calls returnfalse.
How to Use
Here are some specific examples provided.
When Need Explicit Direct File Durability Steps
When code holds a file-backed RuntimeSink directly and should flush it explicitly:
ignore(sink.file_flush())
In this example, the runtime sink attempts to flush its file-backed output directly.
When Need A File-specific Success Flag
When code should branch on the outcome of a direct file flush:
let ok = sink.file_flush()
In this example, callers can distinguish file flush success from a non-file sink shape.
Error Case
e.g.:
-
If the runtime sink is not file-backed, the method returns
false. -
If the file handle was already closed earlier through this runtime sink or another facade sharing the same underlying file-backed state, the method returns
false. -
If callers want generic queue or sink advancement instead of file-specific behavior,
flush()is the broader API.
Notes
-
Prefer this helper when direct runtime code specifically cares about file flush behavior.
-
Queued file sinks may perform both queue flush work and file flush work here, including surfacing delayed write failures from previously queued records.
-
Library or application facades that share the same wrapped file-backed runtime sink still observe the same flush availability state.