Scrivi i log su un file in Python

Muhammad Maisam Abbas 10 ottobre 2023
  1. Scrivi i log su un file con il modulo logging in Python
  2. Scrivi i log su un file con la funzione logging.FileHandler() in Python
Scrivi i log su un file in Python

Questo tutorial introdurrà i metodi per scrivere i log in un file in Python.

Scrivi i log su un file con il modulo logging in Python

I log vengono utilizzati per eseguire il debug di un programma e scoprire cosa è andato storto. Il modulo logging viene utilizzato per registrare i dati in un file in Python. Possiamo usare la funzione logging.basicConfig() per configurare i log da scrivere in un file specifico. Per impostazione predefinita, possiamo registrare 5 tipi di linee con il modulo logging. Questi tipi di messaggi includono debug, informazioni, avvisi, errori e critici. Tuttavia, possiamo aumentare quel numero a tutto ciò di cui abbiamo bisogno attraverso la codifica. Il seguente esempio di codice ci mostra come scrivere i log in un file con la funzione logging.basicConfig().

import logging

# Creating and Configuring Logger

Log_Format = "%(levelname)s %(asctime)s - %(message)s"

logging.basicConfig(
    filename="logfile.log", filemode="w", format=Log_Format, level=logging.ERROR
)

logger = logging.getLogger()

# Testing our Logger

logger.error("Our First Log Message")

Il contenuto del file di logfile.log:

ERROR 2021-06-13 04:14:29,604 - Our First Log Message

Abbiamo scritto il messaggio di registro Our First Log Message di livello error con la data e l’ora corrette di registrazione utilizzando la funzione logging.basicConfig() nel codice sopra. La cosa più importante durante la scrittura dei log è la data e l’ora in cui si verificano. Quindi, abbiamo prima creato un formato per i nostri log all’interno della stringa Log_Format. Questo formato include il livello del registro, la data e l’ora dell’occorrenza e il messaggio da scrivere.

Quindi, utilizziamo il parametro filename della funzione logging.basicConfig() per specificare il file di registro. Abbiamo assegnato il valore a al parametro filemode della funzione logging.basicConfig() per aprire il file in modalità append in modo che i log precedenti non vengano cancellati ogni volta che c’è un nuovo log. Quindi impostiamo il parametro format su Log_Format. Dopo questo passaggio, abbiamo assegnato il parametro logging.ERROR al parametro level per specificare il livello minimo dei log in errore. Abbiamo creato un oggetto logger con logger = logging.getLogger() per scrivere messaggi di registro. Alla fine, abbiamo scritto il messaggio di errore con logger.error("Our First Log Message").

Scrivi i log su un file con la funzione logging.FileHandler() in Python

Possiamo anche usare la funzione logging.FileHandler() per scrivere i log in un file in Python. Questa funzione prende il percorso del file in cui vogliamo scrivere i nostri log. Possiamo quindi utilizzare la funzione addHandler() per aggiungere questo gestore al nostro oggetto logger. Il codice seguente mostra come scrivere i log in un file con la funzione logging.FileHandler().

import logging

logger = logging.getLogger()
handler = logging.FileHandler("logfile.log")
logger.addHandler(handler)
logger.error("Our First Log Message")

contenuto logfile.log:

Our First Log Message

Abbiamo scritto il messaggio di registro, Our First Log Message, nel file logfile.log con la funzione logging.FileHandler() nel codice sopra. Per prima cosa abbiamo creato un oggetto logger che useremo per scrivere i log con la funzione logging.getLogger(). Quindi, creiamo un gestore di file, handler, e gli assegniamo logging.FileHandler('logfile.log'). Successivamente, abbiamo aggiunto questo nuovo handler al nostro oggetto logger con logger.addHandler(handler). Alla fine, abbiamo scritto il messaggio di errore nel nostro file con logger.error('Our First Log Message').

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Articolo correlato - Python Logging