Registra i messaggi sulla console in Django

Vaibhav Vaibhav 12 aprile 2022
Registra i messaggi sulla console in Django

Quando installiamo un set di software sulla nostra macchina, spesso troviamo un file di registro o vediamo alcuni messaggi stampati all’interno della console di quell’applicazione. Questi sono messaggi di registro che forniscono informazioni sugli eventi che si verificano nell’applicazione, le attività che il software sta completando, gli errori riscontrati, gli avvisi, ecc. Questi messaggi aiutano gli sviluppatori di software a migliorare la loro applicazione e a eseguire il debug se gli utenti consentono all’applicazione di condividere i rapporti di errore.

Quando lavoriamo con Django o qualsiasi altro framework per un progetto, generalmente utilizziamo le istruzioni di stampa per eseguire il debug delle nostre applicazioni. Le dichiarazioni di stampa sono grandiose; sono integrati e molto facili da usare. Ma possiamo portare questa cosa al livello successivo se iniziamo a utilizzare pacchetti o librerie dedicate a questo scopo. Queste librerie ci consentono di definire i livelli per i nostri messaggi di registro e di stampare facilmente informazioni aggiuntive come numeri di riga e timestamp. Alcune librerie ci consentono persino di aggiungere colori alle nostre dichiarazioni o messaggi di registro.

In questo articolo impareremo come registrare i messaggi nella console nei progetti Django.

Registra i messaggi usando la libreria Python incorporata logging

Python viene fornito con una libreria integrata logging, il cui unico scopo è aiutare a implementare un sistema di registrazione degli eventi flessibile. In questo articolo, non esamineremo tutto, ma tratteremo solo le basi e alcune cose essenziali.

Quando lavoriamo con il logging, utilizziamo un logger per registrare i messaggi sulla console. Come accennato in precedenza, i messaggi di registro hanno alcuni livelli che indicano lo scopo di un messaggio di registro. Questa biblioteca ha cinque di questi livelli ea ogni livello è associato un numero di anzianità. Ad esempio, il livello CRITICAL ha l’anzianità più alta di 50. DEBUG ha 10. INFO, WARNING e ERROR hanno rispettivamente 20, 30 e 40.

  • DEBUG - Utilizzato per stampare messaggi per eseguire il debug di un’applicazione.
  • INFO - Utilizzato per stampare messaggi generali come affermazioni, conferme e messaggi di successo.
  • WARNING - Utilizzato per segnalare avvisi, imprevisti dovuti a input, indicazioni per alcuni problemi che potrebbero sorgere in futuro, ecc.
  • ERRORE - Utilizzato per segnalare problemi seri che molto probabilmente non fermeranno l’esecuzione dell’applicazione.
  • CRITICAL - Utilizzato per segnalare problemi critici che possono danneggiare i dati dell’utente, esporre i dati dell’utente, ostacolare la sicurezza, interrompere alcuni servizi o forse terminare l’applicazione stessa.

La libreria logging ha funzioni che possiamo usare per registrare i messaggi. Per dimostrare, controlla il codice qui sotto:

import logging

logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

Per impostazione predefinita, il logger non registra i messaggi di registro di livello debug e info. Per abilitarli, dobbiamo definire un livello per il logger. Il seguente codice fa lo stesso:

import logging

logging.basicConfig(level=logging.NOTSET)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

Se il livello è impostato su INFO, verranno stampati solo tutti i livelli con numeri di anzianità maggiori e uguali a quello di INFO. Il seguente programma illustra questo processo:

import logging

logging.basicConfig(level=logging.INFO)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

Il metodo basicConfig() può essere utilizzato per definire il livello. In totale, il parametro level può accettare sei valori.

  • logging.DEBUG # 10
  • logging.INFO # 20
  • logging.WARNING #30
  • logging.ERROR # 40
  • logging.CRITICAL # 50
  • logging.NOTSET # 0

Ci sono più parametri che puoi configurare; Puoi leggere di più su di loro qui].

Per saperne di più, fai riferimento a questo elenco:

  • filename - Il metodo basicConfig() ha un parametro filename che può essere utilizzato per impostare un nome di file, in cui tutti i messaggi devono essere registrati. Quando viene specificato un nome file, i messaggi di registro vengono registrati in questo file anziché nella console.
  • filemode - Il metodo basicConfig() ha un parametro filemode utilizzato per definire la modalità di apertura per il file menzionato. Per impostazione predefinita, è impostato su "a", che significa append. Quindi, ogni volta che eseguirai il programma, nuovi messaggi di registro verranno aggiunti ai vecchi messaggi.
  • format - Il metodo basicConfig() ha un parametro format che può essere utilizzato per formattare la struttura dei messaggi di registro. Il formato predefinito, che assomiglia a questo: <Level>:root:<Message>, verrà sovrascritto dal nuovo formato.

Se vuoi saperne di più su questa libreria, fai riferimento qui.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.