2.4 KiB
name, group, category, update-time, description, key-word
| name | group | category | update-time | description | key-word | ||||
|---|---|---|---|---|---|---|---|---|---|
| configured-logger-file-reopen | api | runtime | 20260707 | Reopen the file sink behind a configured runtime logger with an optional append-mode override. |
|
Configured-logger-file-reopen
Reopen the file sink behind a ConfiguredLogger. This helper is useful for recovery flows after file unavailability or policy changes.
Interface
pub fn ConfiguredLogger::file_reopen(self : ConfiguredLogger, append~ : Bool? = None) -> Bool {}
input
self : ConfiguredLogger- Config-driven runtime logger whose file sink should be reopened.append : Bool?- Optional append-mode override used for reopen behavior.
output
Bool- Whether reopen succeeded.
Explanation
Detailed rules explaining key parameters and behaviors
- Plain file sinks reopen directly through the wrapped
RuntimeSink. - Queued file sinks forward reopen behavior to the wrapped inner file sink only when no queued records are pending.
append=Nonepreserves current reopen policy, whileSome(true/false)overrides append mode.- Non-file sinks return
false. - If a queued file sink still has pending records, reopen is rejected and returns
falseso queued records are not later written under a different reopen mode than the one they were queued under.
How to Use
Here are some specific examples provided.
When Need Recovery After File Failure
When application code should attempt to restore file logging:
ignore(logger.file_reopen())
In this example, the configured logger tries to reopen its runtime file sink using current policy.
When Need Explicit Append-mode Reopen
When recovery should choose append or truncate behavior explicitly:
let ok = logger.file_reopen(append=Some(true))
In this example, reopen behavior is directed by the call site.
Error Case
e.g.:
-
If the configured sink is not file-backed, the method returns
false. -
If callers only need the current configured policy,
file_reopen_with_current_policy()may be the clearer API. -
If a queued file sink still has pending records, callers should flush or close it first before attempting reopen.
Notes
-
Use this helper for explicit recovery flows.
-
On queued file sinks, clear pending records first so reopen semantics stay stable for already queued writes.