ForHosting KIT · Outils pour développeurs

Classer et comparer la gravité des niveaux de journalisation

Les niveaux de journalisation sont faciles à reconnaître, mais leur ordre devient vite incorrect lorsque la configuration, le filtrage ou les alertes sont assemblés dynamiquement.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Cette capacité applique la progression conventionnelle de trace à fatal, trie la liste que vous fournissez et compare deux niveaux dans la même requête. Elle renvoie les noms normalisés en minuscules, l’ordre de référence complet et une relation explicite exploitable dans vos scripts, tests, tableaux de bord et outils documentaires. Tout nom inconnu déclenche une erreur claire au lieu d’être deviné ou placé silencieusement dans le résultat.

Adoptez une seule échelle conventionnelle de gravité

La capacité suit l’ordre croissant reconnu trace, debug, info, warn, error, fatal. Trace désigne les événements de diagnostic les plus détaillés, tandis que fatal correspond aux défaillances susceptibles d’arrêter un processus ou de le rendre inutilisable. Envoyez les niveaux rencontrés dans le tableau <code>levels</code>. Le résultat contient <code>sorted_levels</code>, du moins grave au plus grave, et <code>severity_order</code> comme référence complète. Les doublons sont conservés, car ils peuvent représenter de véritables entrées d’une configuration, d’un échantillon ou d’un rapport. Le tri reste stable pour les valeurs égales. Les espaces sont retirés, la casse est ignorée et les noms reviennent sous leur forme canonique en minuscules. Le vocabulaire est volontairement strict : notice, verbose, warning, critical ou emergency sont refusés. Ces termes relèvent d’autres conventions et leur conversion exigerait une règle métier définie par vous. Ce refus explicite révèle les erreurs avant qu’elles ne perturbent le filtrage ou la gestion des incidents.

Interprétez le résultat de la comparaison

Renseignez <code>first</code> et <code>second</code> pour comparer deux niveaux pendant le tri. La réponse normalise les deux opérandes et fournit une <code>relation</code> du point de vue du premier. <code>more_severe</code> signifie que le premier apparaît plus loin dans l’ordre standard ; <code>less_severe</code>, qu’il apparaît plus tôt ; et <code>equal</code>, que les deux désignent le même niveau. La valeur signée <code>rank_difference</code> précise l’écart : un nombre positif favorise le premier, un nombre négatif le second et zéro indique l’égalité. Si les niveaux diffèrent, <code>more_severe</code> nomme directement le plus grave et évite au client de refaire le calcul. En cas d’égalité, ce champ est omis plutôt que défini à null. Ce format convient aux assertions et aux automatisations conditionnelles. Ainsi, warn comparé à error produit un écart négatif et désigne error comme plus grave. ERROR comparé à error devient égal après normalisation, sans affaiblir le contrôle du vocabulaire autorisé.

Intégrez le classement sans risque dans vos processus

Le classement par gravité est utile dès qu’une configuration textuelle doit conduire à une décision sans ambiguïté. Un lecteur de journaux peut ordonner les filtres avant de les afficher. Un contrôle de déploiement peut vérifier que le seuil de production est au moins warn. Un générateur documentaire peut présenter les niveaux de façon cohérente même si le fichier source les mélange. Des tests de supervision peuvent comparer le seuil configuré au minimum requis et bloquer une version avant la production. La fonction est déterministe et n’effectue aucune requête réseau : une même entrée donne toujours la même sortie dans le navigateur et via l’API. Cet outil classe des noms ; il n’analyse pas les lignes, ne déduit pas le niveau d’un message et ne convertit pas des systèmes incompatibles comme syslog et des libellés personnalisés. Si votre système utilise notice, critical, panic, off ou des nombres, convertissez-les selon votre politique documentée. Le refus des entrées inconnues empêche une faute de frappe de masquer discrètement un événement important.

Normaliser une configuration de journalisation

Classez les niveaux sélectionnés dans l’ordre conventionnel et obtenez des noms cohérents en minuscules.

Contrôler un seuil d’alerte

Comparez le niveau configuré au minimum exigé et exploitez la relation explicite dans un test de déploiement.

Produire une documentation ordonnée

Transformez une liste quelconque de niveaux pris en charge en progression prévisible pour vos pages de référence.

Quel est l’ordre de gravité ?

Du moins grave au plus grave : trace, debug, info, warn, error et fatal.

Les noms en majuscules sont-ils acceptés ?

Oui. Les espaces sont retirés, la comparaison ignore la casse et le résultat utilise les minuscules canoniques.

Que deviennent les niveaux en double ?

Les doublons sont conservés. Les entrées égales gardent leur ordre relatif initial.

Puis-je utiliser warning ou critical ?

Non. Seuls trace, debug, info, warn, error et fatal sont acceptés ; toute autre convention exige une correspondance explicite définie par vous.

Comment interpréter rank_difference ?

Il s’agit du rang du premier niveau moins celui du second. Une valeur positive favorise le premier, une valeur négative le second et zéro indique l’égalité.

Combien coûte une requête API ?

Chaque requête API coûte $0.002. La même capacité déterministe peut aussi être utilisée gratuitement dans le navigateur.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/log-level-severity-rank

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev/log-level-severity-rank \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"levels":["error","debug","fatal","info"],"first":"warn","second":"error"}'
{
  "levels": [
    "error",
    "debug",
    "fatal",
    "info"
  ],
  "first": "warn",
  "second": "error"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.log_level_severity_rank",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_items1000
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →