Diciamo che ho bisogno di due log che escono dalla mia applicazione. Uno è per il debug di problemi e assicurandosi che l'applicazione funzioni correttamente e l'altra sia utilizzata per le statistiche degli utenti e l'analisi generale dell'intera interazione. Quest'ultimo dovrebbe includere informazioni sufficienti per individuare i colli di bottiglia e l'intero comportamento per utente.
Prima di tutto, come chiameresti ogni registro? Entrambi sono chiamati "log"? Uno è un registro di controllo? Qual è la terminologia professionale corretta per ciascuno?
In secondo luogo, come definiresti il registro delle statistiche?
Ad esempio, in Python, posso usare il modulo di registrazione per inserire casuali chiamate logging.info
o logging.debug
per il registro dell'applicazione, praticamente ovunque, e anche se alcune informazioni saranno perse, non è un problema.
Il registro delle statistiche però deve mantenere un identificativo di sessione univoco, ad esempio, in tutto il programma. Ciò causa problemi di progettazione e mi costringe a metterlo globalmente per thread o a passarlo praticamente ovunque, anche per moduli di utilità completamente disaccoppiati, e quindi rovinare i livelli architettonici. Potrei aver bisogno di dati grezzi dai socket per le statistiche, e potrei aver bisogno anche di dati ad alto livello dell'applicazione, distruggendo un bel caos da dove inserire le linee di log, dove inserire alcuni identificatori per richiesta come l'ID di sessione e se alcuni livelli o moduli disaccoppiati dovrebbero anche essere a conoscenza della richiesta (nel caso in cui ho bisogno di alcune statistiche interne che mostrano il funzionamento dei moduli disaccoppiati sotto ogni richiesta).
Anche il log delle statistiche dovrebbe essere paragonabile a macchina ofc, quindi utilizzeresti il modulo python logging
per questo?
In conclusione, c'è qualche idioma generale per progettare quei log?