Programmazione

Accesso a Python la tua guida completa

Accesso a Python la tua guida completa

La registrazione è un passaggio cruciale che deve essere eseguito da un programmatore durante lo sviluppo del software. Aiuta gli sviluppatori a tenere traccia degli eventi che si verificano durante l'esecuzione di un programma, il che può essere utile per il futuro processo di debug. Se sei un nuovo studente o stai lavorando a un nuovo progetto, è buona norma utilizzare la registrazione per tenere traccia del flusso del codice e per risolvere gli errori.

Durante la scrittura di programmi brevi, la maggior parte di noi in genere ignora la registrazione, ma quando il programma diventa complesso, è un passaggio essenziale e utile dell'utilizzo della registrazione per correggere gli errori che impediscono il corretto funzionamento del software. La registrazione non è altro che la scrittura degli eventi nel software in un file di registro o l'emissione nel terminale.

La registrazione non viene utilizzata solo per il debug. È anche un processo utile per raccogliere informazioni, raccogliere dati sull'utilizzo e molte altre attività utili. È anche una delle funzioni più comuni per gli sviluppatori web non solo per rilevare errori ma anche per raccogliere dati dell'utente come indirizzi IP, che possono essere utilizzati per ulteriori analisi aziendali.

In Python, la maggior parte delle funzionalità di registrazione sono fornite dal registrazione modulo presentato nella libreria standard di Python, quindi non dobbiamo fare alcuna configurazione aggiuntiva. Vediamo come usarlo per accedere a python. Prima di seguire questo tutorial, è necessario avere l'ultima versione di python installata nel tuo sistema. Se non hai installato l'ultimo python nel tuo sistema, puoi seguire la nostra guida passo passo sull'installazione e l'aggiornamento di python su Linux.

Il modulo di registrazione Python

Il modulo di registrazione di Python è una delle librerie di registrazione più utilizzate in Python. La parte migliore è che viene preinstallato con la libreria standard di Python, quindi non dobbiamo fare alcuna configurazione o installazione. Il modulo di registrazione è robusto e semplice, il che significa che è utile sia per i principianti che per le imprese. Per utilizzare il modulo di registrazione in python, dobbiamo importarlo nel nostro programma come faccio nella seguente riga di codice.

importazione registrazione

Ora vediamo una demo di come possiamo registrare alcuni messaggi nel terminale. Basta copiare il seguente codice nel tuo IDE Python preferito ed eseguire.

importare la registrazione della registrazione.warning("Questo è un avvertimento")

Eseguendo il codice sopra, otterremo l'output come mostrato nell'immagine qui sotto.

Come si vede nell'output, il programma stampa un messaggio di avviso. Il modulo di registrazione ha anche altri livelli di registrazione come informazioni, errore, ecc., che facilitano il nostro compito. Discutiamoli in breve con esempi.

Livelli di registrazione di Python

È possibile utilizzare molti livelli di registrazione per registrare messaggi diversi a livello di gravità. I livelli forniti da python registrazione modulo sono

Questi livelli sono mostrati nell'ordine decrescente della loro gravità. Vediamo come utilizzare questi livelli nel nostro programma. Basta copiare il seguente codice ed eseguirlo nell'IDE Python.

importare la registrazione della registrazione.critica ("Questo è un messaggio critico") registrazione.errore ("Questo è un messaggio di errore") registrazione.warning("Questo è un messaggio di avviso") registrazione.info("Questo è un messaggio informativo") registrazione.debug("Questo è un messaggio di debug")

Eseguendo il codice sopra nell'IDE, l'output mostrato dal terminale è mostrato nell'immagine qui sotto.

Come si vede nell'output, i messaggi DEBUG e INFO non vengono stampati nel terminale in quanto il modulo di logging, di default, registrava solo i messaggi di livello di sicurezza maggiore o uguale all'avviso. Per visualizzare INFO e DEBUG nel terminale, è necessario modificare manualmente la configurazione di base del logger. Per fare ciò, possiamo usare basicConfig(**kwargs) metodo fornito dal modulo di registrazione. Per vedere una semplice demo di configurazione, esegui il seguente codice nel tuo IDE Python.

importare la registrazione della registrazione.basicConfig(livello=registrazione.Registrazione di debug.critica ("Questo è un messaggio critico") registrazione.errore ("Questo è un messaggio di errore") registrazione.warning("Questo è un messaggio di avviso") registrazione.info("Questo è un messaggio informativo") registrazione.debug("Questo è un messaggio di debug")

Nel codice sopra, abbiamo impostato il livello di registrazione.DEBUG, il che significa che verranno registrati tutti i livelli che sono al di sopra del livello di debug. Quindi nel codice sopra, tutti i messaggi verranno registrati come mostrato nell'immagine qui sotto.

Discutiamo di più sul metodo basicConfig() del modulo di registrazione.

Configurazioni di base

Il modulo di registrazione fornisce un metodo molto utile basicConfig(**Kwargs), che viene utilizzato per impostare le configurazioni per la registrazione dei dati. Alcuni dei parametri comunemente usati della funzione basicConfig() sono:

Vediamo come possiamo usare queste configurazioni nel modulo di registrazione di Python esplorando l'esempio di uno dopo l'altro.

Il parametro level viene utilizzato per impostare il livello di severità, per vedere una demo pratica di come usarlo, copia il codice sottostante nell'IDE python ed esegui.

importare la registrazione della registrazione.basicConfig(livello=registrazione.INFO) registrazione.critica ("Questo è un messaggio critico") registrazione.errore ("Questo è un messaggio di errore") registrazione.warning("Questo è un messaggio di avviso") registrazione.info("Questo è un messaggio informativo") registrazione.debug("Questo è un messaggio di debug")

Eseguendo il codice, potresti vedere l'output, come mostrato nell'immagine qui sotto. Come puoi vedere, i messaggi che sono al di sopra dei livelli di informazione vengono stampati, ma il messaggio a livello di debug non viene stampato.

Il parametro levelèuna configurazione utile che dovrebbe essere fatta in modo che i file di log non fossero troppo grandi contenendo dati non necessari e contenendo solo le informazioni richieste.

Accesso a un file

Abbiamo visto solo come accedere al terminale, ma l'accesso al terminale non è sempre utile in quanto non possiamo salvarlo per un uso successivo. Per una soluzione migliore, possiamo stampare i log in un file di testo che salviamo e analizziamo in seguito. I log sono di testo e possono essere conservati in un file di testo di qualsiasi formato, ma universalmente si adotta il salvataggio dei log in un file con la .estensione di registro. Questi file sono noti come file di registro e vengono utilizzati universalmente per archiviare i registri di programmi, applicazioni Web e altri software.

Possiamo salvare i log in un file impostando la configurazione del modulo di registrazione con l'aiuto della funzione basicConfig(). Dobbiamo dare il nome del file in cui vogliamo salvare i log nel parametro filename della funzione basicConfig(), dopodiché i record verranno stampati automaticamente nel file di log che specifichiamo. Vediamo un esempio pratico per sapere come funziona.

importare la registrazione della registrazione.basicConfig(livello=registrazione.INFO, nomefile="miolog.log") registrazione.critica ("Questo è un messaggio critico") registrazione.errore ("Questo è un messaggio di errore") registrazione.warning("Questo è un messaggio di avviso") registrazione.info("Questo è un messaggio informativo") registrazione.debug("Questo è un messaggio di debug")

Eseguendo il codice, puoi vedere che è stato creato un nuovo file nel nome della directory di lavoro corrente il mio log.log. Aprendo il file con un editor di testo, potresti notare che i log sono stati salvati nel file.

Se eseguiamo nuovamente il codice, vedremo che il registro verrà aggiunto nel file. Possiamo cambiarlo specificando il parametro filemode nella funzione basiconfig(). Per impostazione predefinita, il parametro filemode ha il valore "a", che sta per append. Ma a volte vogliamo anche eliminare i dati registrati in precedenza e scrivere i nuovi registri solo nel file. Per fare ciò, possiamo dare al parametro filemode il valore "w", che sta per write, e cancella tutti i dati precedenti nel file e scrive quelli nuovi. Per una demo, vedere il seguente esempio.

importare la registrazione della registrazione.basicConfig(livello=registrazione.INFO, nomefile="miolog.log", filemode="w") registrazione.critica ("Questo è un messaggio critico") registrazione.errore ("Questo è un messaggio di errore") registrazione.warning("Questo è un messaggio di avviso") registrazione.info("Questo è un messaggio informativo") registrazione.debug("Questo è un messaggio di debug")

Eseguendo il codice sopra, potresti notare che i registri precedenti presenti nel file sono stati rimossi dal file e sono stati aggiunti i nuovi registri. Ogni volta che eseguiamo il codice, verranno aggiunti i nuovi log e i precedenti verranno eliminati, il che è utile quando non abbiamo bisogno dei record per un ulteriore utilizzo.

Formattazione dei log

Abbiamo visto che i log di output hanno il layout predefinito, ma possiamo cambiare il formato impostando il parametro format della funzione basicConfig(). Vediamo una demo pratica per sapere come possiamo usare il parametro format nella funzione basicConfig() per cambiare il formato del log.

importare la registrazione della registrazione.basicConfig(livello=registrazione.INFO, format="%(filename)s: %(levelname)s: %(message)s") registrazione.critica ("Questo è un messaggio critico") registrazione.errore ("Questo è un messaggio di errore") registrazione.warning("Questo è un messaggio di avviso") registrazione.info("Questo è un messaggio informativo") registrazione.debug("Questo è un messaggio di debug")

L'output del codice sopra è come mostrato nell'immagine qui sotto.

Come puoi vedere nell'output, è stato visualizzato anche il nome del file. Possiamo usare il parametro format per indicare molti altri formati, discutiamone alcuni.

%(asctime)s: Questo è usato per visualizzare il tempo leggibile dall'uomo nei registri log. Per vedere come mostra il tempo, esegui il seguente codice nell'IDE Python.

importare la registrazione della registrazione.basicConfig(livello=registrazione.INFO, format="%(asctime)s : %(message)s") registrazione.warning("Questo è un messaggio di avviso")

Eseguendo il codice, potresti vedere l'output, come mostrato nell'immagine qui sotto.

%(creato)f: Questo mostrerà l'ora in cui viene creato il registro.

%(nome file)s: Questo è usato per visualizzare il nome del file nel messaggio di registro. Per vedere come funziona, esegui il seguente codice di esempio nel tuo IDE Python.

importare la registrazione della registrazione.basicConfig(livello=registrazione.INFO, format="%(asctime)s : %(filename)s : %(message)s") registrazione.warning("Questo è un messaggio di avviso")

L'output fornito dal codice è mostrato nell'immagine seguente. Nell'output è stato visualizzato il nome del file. Questo è utile quando si lavora su un progetto che coinvolge più file in modo da poter ottenere rapidamente il file che presenta l'errore.

%(nomelivello)s: Questo è usato per visualizzare il nome del livello usato come WARNING, DEBUG, etc.

%(livello)s: Serve per stampare il valore numerico del livello di cui il messaggio fa parte.

%(lineno)d: Viene utilizzato per stampare il numero di riga della riga corrente, che visualizza il messaggio. Questo è molto utile in quanto ci fornisce il numero di riga in cui dobbiamo vedere per un errore, quindi aiuta il processo di debug. Vediamo un codice di esempio per vedere come usarlo per formare l'output dei log.

import logging Format = '%(asctime)s : %(filename)s:%(lineno)d: %(message)s' logging.basicConfig(livello=registrazione.INFO, format= Formato) registrazione.warning("Questo è un messaggio di avviso")

Questo codice stamperà anche la riga no, come mostrato nell'immagine qui sotto.

%(messaggio)s: Viene utilizzato per visualizzare il messaggio che abbiamo registrato.

%(percorso)s: Questo è usato per visualizzare il percorso completo del file del codice sorgente.

%(processo)d: Questo mostrerà l'ID del processo, se disponibile.

%(nomeprocesso)s: Questo mostrerà il nome del processo, se disponibile.

%(filo)d: Questo mostrerà l'ID del thread se disponibile.

%(nomethread)s: Questo mostrerà il nome del thread, se disponibile.

Registrazione dati variabili Vari

Abbiamo fornito noi stessi i messaggi nei log, che sono dati statici. Tuttavia, nelle applicazioni del mondo reale, i dati che abbiamo registrato saranno per lo più informazioni dinamiche dalla nostra applicazione. Per fare ciò, dobbiamo emettere le variabili con il log dei messaggi. Possiamo farlo in molti modi. Ad esempio, possiamo includere le variabili e formattare la stringa con dei segnaposto e poi passarli al log dei messaggi in modo che i valori delle variabili vengano visualizzati nei record.

Ad esempio, vedere il codice seguente; puoi copiare il codice una corsa nel tuo IDE Python.

import logging var_message = "Internal Error" logging.warning("Il server è stato fermato a causa di %s", var_message)

Eseguendo il codice, vedrai l'output, come mostrato nell'immagine qui sotto. Come puoi vedere nell'immagine che il valore memorizzato nella variabile è anche stampato sullo schermo.

Possiamo anche visualizzare le variabili nei log usando le f-string, che sono introdotte in Python 3.6. Ma per usare le f-string, avrai bisogno di Python 3.6 o superiore installato nel sistema. Puoi verificare quale versione di Python è installata nel tuo sistema eseguendo il seguente comando nel terminale.

python --version # per python 2 su Linux python3 --version # per python 3 su Linux

Questo stamperà la versione di Python che stai utilizzando nel tuo sistema. È buona norma utilizzare l'ultima versione di python per ottenere prestazioni migliori; puoi vedere la nostra guida all'aggiornamento della tua versione di Python in Linux.

Per formattare le stringhe usando le f-string in Python, dobbiamo usare la seguente sintassi del codice. Puoi copiare ed eseguire il codice nel tuo IDE Python preferito.

import logging var_message = "Internal Error" logging.warning(f"Il server è stato arrestato a causa di var_message")

Eseguendo il codice, otterrai un output simile a quello che otteniamo eseguendo il codice sopra. Ma quando vediamo il codice, possiamo notare la f all'inizio della stringa, che rappresenta che si tratta di una f-string, e possiamo usare direttamente le variabili nelle f-string mettendole tra parentesi graffe.

Registrazione delle tracce dello stack

Il modulo di registrazione può essere utilizzato anche per acquisire tracce di stack. Le tracce dello stack sono i messaggi di eccezione che vengono lanciati quando si è verificato un errore nel programma. Possiamo catturare l'eccezione impostando il parametro exc_info su True mentre chiamiamo la funzione di registrazione. Questo parametro è utile in quanto possiamo registrare il messaggio di eccezione completo con il nostro messaggio di errore in un file o nella schermata del terminale.

Per ottenere una demo pratica per sapere come possiamo identificare le tracce dello stack, copia il seguente codice nel tuo IDE Python ed esegui.

import logging try: a = 1/0 tranne Eccezione come e: logging.error("Si è verificato un errore", exc_info=True)

Eseguendo il codice, l'eccezione verrà registrata nel terminale. Vedrai l'output del codice, come mostrato nell'immagine qui sotto. Puoi anche registrare l'eccezione in un file usando il parametro filename nel metodo basicConfig(), come discusso sopra.

Questo metodo è anche fondamentale nella creazione dell'applicazione estesa in quanto possiamo avere la gestione delle eccezioni con la registrazione, che è eccellente per il processo di debug.

Oggetti logger

Il modulo di registrazione fornisce anche alcune classi utili che possono essere utilizzate per una migliore registrazione, principalmente per un'applicazione più ampia. Vediamo alcune delle classi più utilizzate del modulo di logging e cosa e come funzionano.

Se desideri dettagli completi su come utilizzare queste classi, puoi fare riferimento alla documentazione ufficiale del modulo di registrazione di Python.

Conclusione

In questo articolo, abbiamo appreso le basi per eseguire l'accesso in python. Il modulo di registrazione è un modo semplice e potente per eseguire il login in python. Supponiamo che tu non stia eseguendo la registrazione fino ad ora, oggi è il giorno per iniziare con la registrazione mentre leggi l'articolo e hai imparato quanto è facile usare la registrazione in python. Ora puoi utilizzare la registrazione in applicazioni sia piccole che significative.

Se accedi correttamente, sarà davvero utile in un modo o nell'altro. Ti consiglio di iniziare ad usarlo da piccoli programmi in quanto ti aiuterà ad avere una buona conoscenza della cosa o due e sarà impagabile per i grandi progetti. Potresti anche voler vedere come lavorare con i database SQLite in python. 

Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...