0.5.1-pre.007

This commit is contained in:
2026-08-10 09:28:57 +02:00
parent 34a670eaec
commit a2820062eb
81 changed files with 3357 additions and 2381 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: ks-logging/README.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# ks-logging
@@ -7,39 +7,21 @@
## Responsabilités
- charger `logging.config.json` et résoudre ses placeholders denvironnement ;
- charger `logging.config.json` et 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`, `LogTargetConfig` et `LogTargetFilterConfig` ;
- 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 `WorkerGuard` pendant toute la durée du processus.
- posséder `logs_directory` comme valeur globale indépendante des profils ;
- sélectionner un `default_profile` ou un profil explicitement choisi par une composition ;
- résoudre les chemins relatifs des targets fichier sous `logs_directory` ;
- initialiser les routes `tracing` sans exposer de secret.
## Relations
`logs_directory` utilise actuellement `${KS_LOGS_DIRECTORY:-logs}`. Une installation peut donc déplacer la racine des logs par environnement ou `.env` sans recopier le chemin dans chaque profil logging.
`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.
## Frontière
Le desktop lit le chemin `logging` et le `logging_profile` depuis `config/kb-app-demo-desktop.default.config.json`, charge le document logging puis transmet le profil explicitement sélectionné à `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 autonome actif et `logging_profile` résout un profil explicitement nommé par une composition ;
- `LoggingConfigDocument` et `LoggingProfileConfig` décrivent le document ;
- `LoggingConfig`, `LogTargetConfig` et `LogTargetFilterConfig` décrivent le runtime ;
- `init_logging` initialise le subscriber global ;
- `LoggingGuard` maintient les writers ;
- `tracing_target` retourne 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`.
Les types logging restent possédés par `ks-logging`, pas par `ks-config`. Une composition de binaire ne recopie aucune route : elle référence le document logging partagé et peut remplacer seulement le profil sélectionné.
## Documents
- [Utilisation](USAGE.md)
- [Travaux restants](TODO.md)
- [Historique](CHANGELOG.md)
- [Configuration locale](../config/README.md)
- [Guide logging](../docs/guides/LOGGING.md)