Files
BitLogger/docs/api/configured-logger-file-reopen.md
Nanaloveyuki 7946dcdaee 📝 补充runtime文档
2026-07-07 11:25:02 +08:00

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.
logger
runtime
file
public

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=None preserves current reopen policy, while Some(true/false) overrides append mode.
  • Non-file sinks return false.
  • If a queued file sink still has pending records, reopen is rejected and returns false so 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

  1. Use this helper for explicit recovery flows.

  2. On queued file sinks, clear pending records first so reopen semantics stay stable for already queued writes.