0.5.1-pre.005
This commit is contained in:
@@ -1,38 +1,45 @@
|
||||
<!-- file: ks-logging/README.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# ks-logging
|
||||
|
||||
`ks-logging` initialise le subscriber global `tracing` à partir d’une 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 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 ;
|
||||
- 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 qu’un 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
|
||||
|
||||
L’initialisation multi-routes est fonctionnelle. Elle échoue explicitement si aucune route n’est 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)
|
||||
|
||||
Reference in New Issue
Block a user