1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 ZeroDDS Contributors
//! Crate `zerodds-security-logging`. Safety classification: **SAFE** (reiner I/O-Wrapper; keine Secrets werden gepuffert ausserhalb der Log-Zeile selbst).
//!
//! Produktions-taugliche Logging-Backends fuer DDS-Security 1.1/1.2 §8.6
//! (`LoggingPlugin`-SPI aus `zerodds-security`).
//!
//! ## Schichten-Position
//!
//! Layer 4 — Core Services. Konsumiert von end-user-Builds + DCPS-Runtime
//! (Feature `security`).
//!
//! ## Public API (Stand 1.0.0-rc.1)
//!
//! - [`StderrLoggingPlugin`] — structured log lines an `stderr`.
//! - [`JsonLinesLoggingPlugin`] — `application/x-ndjson` in eine Datei.
//! - [`SyslogLoggingPlugin`] — RFC-5424-UDP-Backend (Facility `LOCAL0`).
//! - [`FanOutLoggingPlugin`] — fan-out an mehrere Backends.
//!
//! # Was dieser Crate liefert
//!
//! 1. [`StderrLoggingPlugin`] — schreibt structured log lines an
//! `stderr`. Default fuer Development + Container-Deployments mit
//! stdout/stderr-Collector (Loki, Vector, Fluentd).
//! 2. [`JsonLinesLoggingPlugin`] — schreibt JSON-Lines
//! (`application/x-ndjson`) in eine Datei. Jede Zeile = ein Event.
//! Ein zweiter Prozess (z.B. auditd, filebeat) rotiert die Datei.
//! 3. [`FanOutLoggingPlugin`] — routet jedes Event an **mehrere**
//! Backends (z.B. stderr + JSON-File gleichzeitig).
//!
//! Alle Backends filtern Events nach `LogLevel`; das Default-Level ist
//! `Warning` — niedriger (Informational, Debug) wird still verworfen.
//!
//! ## Nicht-Ziele
//!
//! - Syslog-TCP (RFC 5425) und Syslog-TLS — die meisten Syslog-
//! Deployments laufen im vertrauten Segment; Re-Add bei Bedarf.
//! - Structured Telemetry (OpenTelemetry / OTLP) — abgedeckt von
//! `zerodds-observability-otlp` (Layer 4.6).
//! - Log-Rotation im Plugin selbst — Aufgabe des Betriebssystems /
//! `logrotate`.
// Drei Plugin-Impls fuer Box-Polymorphie — SPI-bedingt.
// zerodds-lint: allow no_dyn_in_safe
extern crate alloc;
pub use FanOutLoggingPlugin;
pub use JsonLinesLoggingPlugin;
pub use StderrLoggingPlugin;
pub use SyslogLoggingPlugin;