Log-Level nach Schweregrad sortieren und vergleichen
Log-Level sind leicht zu erkennen, werden aber überraschend oft falsch geordnet, wenn Konfiguration, Filterung oder Alarmierung dynamisch zusammengesetzt werden.
Im Browser ausführen – kostenlos
Diese Funktion verwendet die übliche Abstufung von trace bis fatal, sortiert Ihre übergebene Liste und vergleicht zwei benannte Stufen in derselben Anfrage. Sie liefert normalisierte kleingeschriebene Namen, die vollständige Referenzreihenfolge und eine eindeutige Beziehung für Skripte, Tests, Dashboards und Dokumentationswerkzeuge. Unbekannte Namen erzeugen einen klaren Fehler, statt erraten oder stillschweigend an einem Ende des Ergebnisses eingeordnet zu werden.
Verwenden Sie eine einheitliche Schweregradskala
Die Funktion nutzt die weithin anerkannte aufsteigende Reihenfolge trace, debug, info, warn, error, fatal. Trace steht für besonders detaillierte Diagnoseereignisse, fatal für Fehler, die einen Prozess anhalten oder unbrauchbar machen können. Übergeben Sie die tatsächlich gefundenen Stufen im Array <code>levels</code>. Das Ergebnis enthält <code>sorted_levels</code> vom geringsten bis zum höchsten Schweregrad sowie <code>severity_order</code> als vollständige Referenz. Wiederholte Werte bleiben erhalten, weil Duplikate echte Einträge einer Konfiguration, Stichprobe oder Auswertung darstellen können. Bei gleichen Werten bleibt die Sortierung stabil. Leerraum wird entfernt, Groß- und Kleinschreibung werden beim Abgleich ignoriert und die Ausgabe verwendet kanonische Kleinbuchstaben. Das Vokabular ist bewusst eng: notice, verbose, warning, critical oder emergency werden abgelehnt. Diese Namen gehören zu anderen Konventionen und lassen sich ohne eine von Ihnen festgelegte Richtlinie nicht eindeutig abbilden. Die ausdrückliche Ablehnung macht Konfigurationsfehler sichtbar, bevor sie Filter oder die Reaktion auf Vorfälle beeinträchtigen.
Verstehen Sie das Vergleichsergebnis
Geben Sie <code>first</code> und <code>second</code> an, um neben der Sortierung zwei Stufen zu vergleichen. Die Antwort normalisiert beide Operanden und meldet eine <code>relation</code> aus Sicht des ersten. <code>more_severe</code> bedeutet, dass der erste später in der Standardreihenfolge steht; <code>less_severe</code>, dass er früher steht; <code>equal</code>, dass beide dieselbe Stufe bezeichnen. Der vorzeichenbehaftete Wert <code>rank_difference</code> nennt den genauen Abstand: Eine positive Zahl spricht für den ersten Operanden, eine negative für den zweiten, null bedeutet Gleichheit. Bei unterschiedlichen Operanden nennt <code>more_severe</code> den höheren direkt, sodass Clients den Vergleich nicht wiederholen müssen. Bei Gleichheit wird das Feld weggelassen und nicht auf null gesetzt. Diese Form eignet sich gut für Assertions und bedingte Automatisierung. Der Vergleich von warn mit error ergibt beispielsweise einen negativen Abstand und nennt error als schwerwiegender. ERROR und error sind nach der Normalisierung gleich, ohne die Prüfung des zulässigen Vokabulars aufzuweichen.
Setzen Sie die Rangfolge sicher in Entwicklungsabläufen ein
Eine Schweregradrangfolge hilft überall dort, wo Textkonfigurationen zu eindeutigen Entscheidungen werden müssen. Eine Loganzeige kann ausgewählte Filter vor der Darstellung ordnen. Eine Bereitstellungsprüfung kann bestätigen, dass der Produktionsschwellenwert mindestens warn ist. Ein Dokumentationsgenerator kann Stufen konsistent darstellen, selbst wenn die Quelldatei sie ungeordnet aufführt. Überwachungstests können den konfigurierten Schwellenwert mit einem erforderlichen Minimum vergleichen und eine Freigabe vor der Produktion stoppen. Die Funktion ist deterministisch und stellt keine Netzwerkanfragen; dieselbe Eingabe liefert daher im Browser und über die API stets dieselbe Ausgabe. Das Werkzeug ordnet Namen, analysiert jedoch keine Logzeilen, leitet keine Stufe aus Nachrichten ab und übersetzt nicht zwischen inkompatiblen Systemen wie syslog und eigenen Bezeichnungen. Verwendet Ihr System notice, critical, panic, off oder Zahlen, ordnen Sie diese zuvor nach Ihrer dokumentierten Richtlinie zu. Unbekannte Eingaben werden absichtlich abgelehnt, damit ein Tippfehler wichtige Ereignisse nicht unbemerkt ausblendet.
Anwendungsfälle
Eine Logkonfiguration normalisieren
Sortieren Sie ausgewählte Stufen konventionell und erhalten Sie einheitliche kleingeschriebene Namen.
Einen Alarmschwellenwert prüfen
Vergleichen Sie die konfigurierte Stufe mit dem geforderten Minimum und nutzen Sie die eindeutige Beziehung im Bereitstellungstest.
Geordnete Dokumentation erstellen
Überführen Sie eine beliebige Liste unterstützter Stufen in eine vorhersehbare Abfolge für Referenzseiten.
Häufige Fragen
Wie lautet die Schweregradreihenfolge?
Vom geringsten zum höchsten Schweregrad: trace, debug, info, warn, error und fatal.
Sind großgeschriebene Namen zulässig?
Ja. Äußerer Leerraum wird entfernt, der Abgleich ignoriert die Schreibweise und die Ausgabe verwendet kanonische Kleinbuchstaben.
Was geschieht mit doppelten Stufen?
Duplikate bleiben erhalten. Gleiche Einträge behalten ihre ursprüngliche relative Reihenfolge.
Kann ich warning oder critical verwenden?
Nein. Zulässig sind nur trace, debug, info, warn, error und fatal; andere Konventionen benötigen eine ausdrücklich von Ihnen definierte Zuordnung.
Wie ist rank_difference zu verstehen?
Der Wert ist der Rang der ersten Stufe minus dem Rang der zweiten. Positiv bedeutet, dass die erste schwerer wiegt, negativ spricht für die zweite und null bedeutet Gleichheit.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Dieselbe deterministische Funktion kann auch kostenlos im Browser ausgeführt werden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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"}'const res = await fetch("https://api.kit.forhosting.com/dev/log-level-severity-rank", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"levels": [
"error",
"debug",
"fatal",
"info"
],
"first": "warn",
"second": "error"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/log-level-severity-rank",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"levels": [
"error",
"debug",
"fatal",
"info"
],
"first": "warn",
"second": "error"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/log-level-severity-rank", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"levels":["error","debug","fatal","info"],"first":"warn","second":"error"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"levels":["error","debug","fatal","info"],"first":"warn","second":"error"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/log-level-severity-rank", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"levels": [
"error",
"debug",
"fatal",
"info"
],
"first": "warn",
"second": "error"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.log_level_severity_rank",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_items | 1000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |