Skip to content

File-sink-reopen-append

Reopen a FileSink in append mode. This helper is the explicit append-oriented recovery shortcut on the direct sink.

Interface

moonbit
pub fn FileSink::reopen_append(self : FileSink) -> Bool {

input

  • self : FileSink - File sink that should be reopened in append mode.

output

  • Bool - Whether reopen succeeded.

Explanation

Detailed rules explaining key parameters and behaviors

  • This helper is a specialized shortcut over reopen(append=Some(true)).
  • Reopen behavior is fixed to append mode.
  • The stored append policy is updated to true as part of the reopen path.
  • On failure, the sink remains unavailable and open_failures is incremented.
  • After a rotation failure, this is the explicit recovery path once the underlying remove, rename, or open condition has been resolved.

How to Use

Here are some specific examples provided.

When Need Append-preserving Recovery

When file logging should continue appending after a reopen:

moonbit
ignore(sink.reopen_append())

In this example, reopen behavior is fixed to append mode.

When Want An Explicit Append Shortcut

When code should avoid manually setting append overrides:

moonbit
let ok = sink.reopen_append()

In this example, the call site states append intent directly.

Error Case

e.g.:

  • If callers need truncate behavior instead, reopen_truncate() is the correct API.

  • If reopen fails, the helper returns false and the sink stays unavailable.

Notes

  1. Use this helper for explicit append-mode reopen flows.

  2. It is especially useful after transient file availability issues.

Published from the repository docs folder with VitePress.