Golang registro al file

Golang registro al file
La registrazione è uno degli strumenti più importanti per uno sviluppatore. Consente di monitorare un'applicazione per bug, problemi di prestazioni, monitoraggio dell'utilizzo e molto altro. Quindi, imparare a creare registri per l'applicazione è molto vantaggioso.

Utilizzando questa guida, ti presenteremo il pacchetto di registro nella libreria GO standard e lo utilizzeremo per creare registri personalizzati.

Pacchetto di registro Golang

La biblioteca standard Go è enorme, credimi, contiene una raccolta di strumenti, utility e pacchetti per aspetti quasi importanti di un programmatore.

Uno di questi pacchetti è il pacchetto di registro. È dotato di tutto il necessario per implementare le funzionalità di registrazione per i tuoi programmi GO. Ciò include vari livelli di registrazione come debug, avviso, errore, informazioni, ecc.

Il metodo più elementare nel pacchetto di registro è il metodo println. Come il metodo println dal pacchetto FMT, consente di creare un messaggio di registro di base.

Un codice sorgente di esempio è come mostrato di seguito:

Pacchetto principale
Importa "log"
func main ()
tronco d'albero.Println ("Ciao, lì!")

Se eseguiamo il codice sopra, dovremmo vedere ed emettere come mostrato:

2022/01/27 21:29:35 Ciao, lì!

Notare qualcosa di diverso nel messaggio stampato sulla console?

Il metodo println dal pacchetto di registro include un timestamp di quando è stato creato il messaggio di registro. Se si sta ingerendo i registri per un'applicazione di registrazione, avere il timestamp è estremamente vantaggioso per filtrare i registri.

Tieni presente che il pacchetto di registro stamperà il messaggio sul flusso di Stderr. Puoi anche configurarlo per scrivere su un file, come copriremo nella sezione successiva.

Golang registro al file

Per accedere a un file, è possibile utilizzare il pacchetto OS per creare un file di registro se non esiste o si aprirà e scrivi su un file esistente. In questo modo imposterà l'output del pacchetto di registro sul file di output specificato.

Tieni presente che il pacchetto di registro supporta anche altre destinazioni di output che supporta IO.Interfaccia scrittore.

Un codice di esempio per accedere a un file è come mostrato nello snippet di seguito:

Pacchetto principale
importazione (
"tronco d'albero"
"OS"
"tempo"
)
func main ()
// apri il file e crea se inesistente
File, err: = OS.Openfile ("personalizzato.loghi.O_APPEND | OS.O_Create | os.O_wronly, 0644)
Se err != nil
tronco d'albero.Fatale (err)

DEFER FILE.Vicino()
Logger: = log.Nuovo (file, "registro personalizzato", registro.Lstdflags)
Logger.Println ("Sono un nuovo messaggio di registro")
tempo.Dormire (5 * volte.Secondo)
Logger.Println ("un nuovo registro, 5 secondi dopo")

Nell'esempio sopra, iniziamo aprendo un file da utilizzare come output del registro. Includiamo i flag da scrivere sul file e crearlo se non esiste.

Verifichiamo quindi se si verifica un errore durante la lettura/scrittura nel file. Se si verifica un errore, registriamo l'errore usando il registro.Fatale.

Il ceppo.Il metodo fatale () è simile al metodo Print () ma include una chiamata al sistema operativo.EXIT () con un codice di stato di 1.

Il prossimo passo è chiudere il file. Impostiamo la funzione di chiusura set su differire, consentendo l'esecuzione della funzione dopo la realizzazione della funzione principale.

Il prossimo passo è creare un nuovo logger che scrive nel file. Il ceppo.La funzione logger prende 3 argomenti principali:

  1. L'output del registro, in questo caso, è il file di registro.
  2. Il prefisso che viene aggiunto all'inizio di ciascuna voce nel file di registro.
  3. Infine, è la costante di registro dopo il prefisso di testo per ogni riga di registro.

I seguenti sono costanti di registro supportate:

  1. Ldate
  2. Tempo
  3. Lmicroseconds
  4. Llongfile
  5. LSHORTFILE
  6. Lutc
  7. LMSGPREFIX
  8. Lstdflags

Considera la risorsa di documentazione di seguito per saperne di più.

https: // pkg.andare.Dev/log#PKG Constanti

Nel nostro esempio sopra, abbiamo anche impostato un tempo di sonno per 5 secondi. Se eseguiamo il codice sopra, dovremmo ottenere un output come mostrato di seguito:

$ gatto personalizzato.tronco d'albero
Log del log2022/01/27 21:40:25 Sono un nuovo messaggio di registro
LOG CHIUST2022/01/27 21:40:30 Un nuovo registro, 5 secondi dopo

Il timestamp tra la prima voce del registro e la seconda voce del registro è di distanza da 5 secondi. Ciò è dovuto alla funzione del sonno nel codice sopra.

Conclusione

Questo post esplora il concetto di creazione e costruzione di logger per la tua applicazione in Go. Utilizzando questa guida, è possibile iniziare nell'uso del pacchetto di registro Go e crea meccanismi di registrazione avanzati per le tue applicazioni.

Grazie per aver letto!