0.5.1-pre.005

This commit is contained in:
2026-08-10 01:36:42 +02:00
parent ec07ddbd80
commit b6a286a4df
54 changed files with 6236 additions and 5569 deletions

View File

@@ -1,38 +1,45 @@
<!-- file: ks-logging/README.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# ks-logging
`ks-logging` initialise le subscriber global `tracing` à partir dune configuration de routes explicites vers la console ou des fichiers.
`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.json` et résoudre ses placeholders denvironnement ;
- valider `config/schemas/logging.config.schema.json` ;
- sélectionner un profil logging indépendamment du profil applicatif ;
- posséder `LoggingConfig`, `LogTargetConfig` et `LogTargetFilterConfig` ;
- sélectionner les routes activées ;
- appliquer niveaux, targets exactes et préfixes wildcard ;
- créer les writers non bloquants ;
- gérer les formats human, compact, pretty et JSON ;
- gérer les rotations de fichiers supportées ;
- créer les writers non bloquants et gérer les formats/rotations ;
- conserver les `WorkerGuard` pendant toute la durée du processus.
## Hors périmètre
## Relations
La crate ne charge pas actuellement le fichier de configuration et ne définit pas les targets des autres crates. Le cadrage `0.5.0-pre.002` confirme quun document logging séparé sera introduit en `0.5.1`; la propriété exacte du DTO source sera fixée sans faire dépendre la configuration générale du runtime tracing.
`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_environment` charge le document logging ;
- `parse_logging_json` et `validate_logging_json_schema` valident le format ;
- `active_logging_profile` sélectionne le profil actif ;
- `LoggingConfigDocument` et `LoggingProfileConfig` décrivent le document ;
- `LoggingConfig`, `LogTargetConfig` et `LogTargetFilterConfig` décrivent le runtime ;
- `init_logging` initialise le subscriber global ;
- `LoggingConfig`, `LogTargetConfig` et `LogTargetFilterConfig` décrivent les routes ;
- `LoggingGuard` maintient les writers et expose les routes installées ;
- `tracing_target` retourne le target canonique de la crate ;
- `LogFileRoute` reste disponible pour les anciens appelants file-only.
- `LoggingGuard` maintient les writers ;
- `tracing_target` retourne le target canonique de la crate.
## Statut
Linitialisation multi-routes est fonctionnelle. Elle échoue explicitement si aucune route nest activée ou si le subscriber global a déjà été initialisé.
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`.
## Documents
- [Utilisation](USAGE.md)
- [Travaux restants](TODO.md)
- [Historique](CHANGELOG.md)
- [Guide de configuration](../ks-config/USAGE.md)
- [Configuration locale](../config/README.md)