Avviso equivoco : presentare uno schema come questo richiederà una governance per mantenere lo schema utile.
Ho partecipato a numerosi progetti che utilizzano uno schema simile a quello che stai descrivendo. È molto utile per help desk, L2 e L3 quando lo schema viene applicato. Uno dei grandi vantaggi è che HD può rapidamente comunicare di trasmettere determinati messaggi e trasmetterli alla catena perché indicano problemi più gravi rispetto a quelli per cui sono stati addestrati.
Suggerirei di suddividere prima per area, poi per gravità.
Lasciati un sacco di spazio tra le aree principali in quanto è un vero PITA, se non addirittura impossibile, per spostare i numeri di errore intorno dopo che sono stati impostati. Non è una sfida tecnica, ma più di una sfida di documentazione e riqualificazione.
Uno schema semplice potrebbe essere questo:
- 1000 appartengono a "messaggi dell'applicazione di base"
- 2.000 appartengono a IO
- 3.000 appartengono a DB Comms
...
- 9.000 appartengono a brutte ansie che richiedono un'indagine L3 immediata
dove ciascuno dei blocchi è un'area principale della tua applicazione. Interfaccia utente / Ganci DB / Config mgmt / file IO / etc ... sono solo alcuni esempi di aree che potrebbero ricevere il proprio blocco di numeri di messaggi.
All'interno di quei gruppi:
0 - 250 sono informativi
251 - 500 sono avvisi
501 - 750 sono errori
751 - 999 sono debug / trace (presupponendo che tu non abbia una struttura separata per quello)
Se è possibile utilizzare un indicatore di lettere alla fine del messaggio, è possibile saltare questo sottogruppo di gravità. Ma non tutti i meccanismi di archiviazione degli eventi consentono l'utilizzo di un carattere non numerico.
Un'altra opzione sarebbe quella di utilizzare l'ultima cifra del messaggio per indicare la gravità. In altre parole, i numeri di errore che terminano con 0,1,2 sono Info, ... 8,9 sono debug / sky-is-falling.
Ovviamente, soddisfa i numeri e gli intervalli in base alle tue esigenze, i precedenti sono solo esempi.
Questo è un layout simile ma diverso da Codici di errore HTTP .
Con la differenza principale è che si tratta di un'area applicativa che guida l'organizzazione / l'assegnazione di numeri di messaggi di errore. I codici HTTP non hanno realmente aree applicative in grado di distruggere le cose.
Non sono un grande fan semplicemente usando numeri sequenziali o usando il conteggio dei salti. Prima di tutto, non esiste una struttura logica per questi schemi e fornisce solo un suggerimento su quando i messaggi sono stati creati. Sapendo che 0010 è stato creato come messaggio di errore molto prima che il messaggio 750 sia praticamente privo di informazioni.
Metterei un voto per l'organizzazione logica anche all'interno delle categorie info / warning / error, ma questo può diventare molto difficile o complicato da mantenere.