2.0 KiB
2.0 KiB
ks-logging
ks-logging possède le contrat logging indépendant du workspace et initialise le subscriber global tracing à partir du profil logging sélectionné.
Responsabilités
- charger
logging.config.jsonet résoudre ses placeholders d’environnement ; - valider
config/schemas/logging.config.schema.json; - sélectionner un profil logging indépendamment du profil applicatif ;
- posséder
LoggingConfig,LogTargetConfigetLogTargetFilterConfig; - sélectionner les routes activées ;
- appliquer niveaux, targets exactes et préfixes wildcard ;
- créer les writers non bloquants et gérer les formats/rotations ;
- conserver les
WorkerGuardpendant toute la durée du processus.
Relations
ks-logging dépend de ks-config uniquement pour le chargement du fichier .env et la résolution générique ${KS_*} / ${KB_*}. ks-config ne dépend pas de ks-logging et ne duplique aucun type logging.
Le desktop charge config/app.config.json et config/logging.config.json séparément puis transmet directement le profil logging actif à init_logging.
API publique
read_logging_json_file_with_environmentcharge le document logging ;parse_logging_jsonetvalidate_logging_json_schemavalident le format ;active_logging_profilesélectionne le profil actif ;LoggingConfigDocumentetLoggingProfileConfigdécrivent le document ;LoggingConfig,LogTargetConfigetLogTargetFilterConfigdécrivent le runtime ;init_logginginitialise le subscriber global ;LoggingGuardmaintient les writers ;tracing_targetretourne le target canonique de la crate.
Statut
Le split config/logging est fonctionnel. Les profils logging sont indépendants des profils applicatifs et les routes existantes restent conservées dans config/logging.config.json.