Diagnostics Resilience
Diagnostics & Resilience
Fapilog is designed to contain errors and surface diagnostics without crashing applications.
Internal diagnostics
Enable with
FAPILOG_CORE__INTERNAL_LOGGING_ENABLED=true.Emits WARN/DEBUG lines for worker errors, sink errors, backpressure drops, and serialization issues.
Output goes to stderr by default (Unix convention), keeping diagnostics separate from application logs on stdout.
Use
core.diagnostics_output="stdout"for backward compatibility with older log pipelines.
Error containment
Enrichment, redaction, and sink errors are caught; offending entries may be dropped but do not raise into the app.
Backpressure drops are counted and optionally logged.
Error deduplication: identical ERROR/CRITICAL messages within a window (
core.error_dedupe_window_seconds) are suppressed to reduce noise, with a summary emitted when the window rolls.
Shutdown behavior
stop_and_drain()signals the dedicated worker thread to stop and joins it with a timeout (core.shutdown_timeout_seconds) to avoid hangs.
Resilience tips
Keep
drop_on_full=Truefor burst protection in latency-sensitive paths; monitor drops via metrics.Use redaction guardrails (
redaction_max_depth,redaction_max_keys_scanned) to avoid pathological data structures.Enable internal diagnostics temporarily during investigations; keep it off in steady state if noisy.