File-sink-policy-to-json
Convert FileSinkPolicy into a JsonValue. This helper exports append mode, auto-flush, and optional rotation as a structured runtime policy snapshot.
Interface
pub fn file_sink_policy_to_json(policy : FileSinkPolicy) -> @json_parser.JsonValue {}input
policy : FileSinkPolicy- File sink runtime policy to export.
output
JsonValue- Structured JSON representation of the file policy.
Explanation
Detailed rules explaining key parameters and behaviors
- The output includes
append,auto_flush, androtation. rotationis exported asnullwhen rotation is disabled.- This helper exports runtime file policy, not current file health counters or availability.
- The JSON value is useful for policy snapshots, comparisons, and diagnostics payloads.
- Typical inputs come from
FileSink::policy(),RuntimeSink::file_policy(), orConfiguredLogger::file_policy().
How to Use
Here are some specific examples provided.
When Need Structured Policy Snapshots
When file policy should be embedded into a larger JSON payload:
let value = file_sink_policy_to_json(runtime.file_policy())In this example, the runtime file policy becomes a reusable structured value.
When Need Policy Comparison Data
When current and default policy should be exported separately:
let current = file_sink_policy_to_json(runtime.file_policy())
let defaults = file_sink_policy_to_json(runtime.file_default_policy())In this example, callers can compare current and default policy snapshots without formatting text first.
Error Case
e.g.:
If rotation is disabled, the exported
rotationfield isnullrather than omitted.If callers need direct text output,
stringify_file_sink_policy(...)is the better API.
Notes
Use this helper when downstream code expects
JsonValuerather than text.It pairs naturally with
FileSink::policy(),RuntimeSink::file_policy(), and related default-policy accessors.