Golang Log til filen

Golang Log til filen
Logging er et av de viktigste verktøyene for en utvikler. Det gjør det mulig å overvåke en applikasjon for feil, ytelsesproblemer, sporing av bruk. Derfor er det svært gunstig å lære å lage logger for applikasjonen din.

Ved hjelp av denne guiden vil vi introdusere deg for loggpakken i Go Standard Library og bruke den til å lage tilpassede logger.

Golang Log Package

Go Standard-biblioteket er massivt, tro meg, det har en samling verktøy, verktøy og pakker for nesten helt viktige aspekter av en programmerer.

En slik pakke er loggpakken. Det er utstyrt med alt du trenger for å implementere loggfunksjoner for GO -programmene dine. Dette inkluderer forskjellige loggnivåer som feilsøking, advarsel, feil, informasjon osv.

Den mest grunnleggende metoden i loggpakken er Println -metoden. Som Println -metoden fra FMT -pakken, lar den deg opprette en grunnleggende loggmelding.

Et eksempel på kildekoden er som vist nedenfor:

pakkehoved
Importer "log"
func main ()
Logg.Println ("Hei, der!")

Hvis vi kjører koden ovenfor, bør vi se og sende ut som vist:

2022/01/27 21:29:35 Hei, der!

Legg merke til noe annet i meldingen som er trykt på konsollen?

Println -metoden fra loggpakken inneholder en tidsstempel av når loggmeldingen ble opprettet. Hvis du inntar loggene for en loggprogram, er det enormt gunstig å ha tidsstempel for filtreringslogger.

Husk at loggpakken vil skrive ut meldingen til Stderr -strømmen. Du kan også konfigurere den til å skrive til en fil, da vi vil dekke i neste avsnitt.

Golang Log til filen

For å logge på en fil, kan du bruke OS -pakken til å opprette en loggfil hvis den ikke eksisterer eller åpner og skriver til en eksisterende fil. Hvis du gjør det, vil du angi utdataene fra loggpakken til den spesifiserte utgangsfilen.

Husk at loggpakken også støtter andre utgangsdestinasjoner som støtter IO.Forfattergrensesnitt.

Et eksempelkode for å logge på en fil er som vist i utdraget nedenfor:

pakkehoved
import (
"Logg"
"OS"
"tid"
)
func main ()
// Åpne filen og opprette hvis ikke-eksisterende
Fil, feil: = OS.OpenFile ("Custom.Logg ", OS.O_append | OS.O_CREATE | OS.O_wronly, 0644)
Hvis feil != nil
Logg.Fatal (feil)

utsett fil.Lukk()
Logger: = log.Ny (fil, "Tilpasset log", log.LSTDFLAGS)
Logger.Println ("Jeg er en ny loggmelding")
tid.Sove (5 * tid.Sekund)
Logger.Println ("En ny logg, 5 sekunder senere")

I eksemplet over begynner vi med å åpne en fil for å bruke som loggutgang. Vi inkluderer flaggene for å skrive til filen og opprette den hvis den ikke eksisterer.

Vi sjekker deretter om det er en feil når du leser/skriver til filen. Hvis det oppstår en feil, logger vi feilen ved å bruke loggen.Fatal.

Loggen.Fatal () -metoden ligner på print () -metoden, men inkluderer en samtale til OS.Exit () med en statuskode på 1.

Neste trinn er å lukke filen. Vi setter settet nær funksjonen for å utsette, slik at funksjonen kan utføres etter at hovedfunksjonen er utført.

Neste trinn er å lage en ny logger som skriver til filen. Loggen.Logger -funksjonen tar 3 hovedargumenter:

  1. Loggutgangen er i dette tilfellet loggfilen.
  2. Prefikset som er vedlagt til begynnelsen av hver oppføring i loggfilen.
  3. Til slutt er loggen konstant etter tekstprefikset for hver logglinje.

Følgende støttes loggkonstanter:

  1. Ldate
  2. Lime
  3. Lmicroseconds
  4. Llongfile
  5. Lshortfile
  6. LUTC
  7. Lmsgprefix
  8. LSTDFLAGS

Vurder dokumentasjonsressursen nedenfor for å lære mer.

https: // pkg.gå.Dev/Log#PKG-Constants

I vårt eksempel over setter vi også en søvntid i 5 sekunder. Hvis vi kjører koden over, bør vi få en utdata som vist nedenfor:

$ katt tilpasset.Logg
Tilpasset log2022/01/27 21:40:25 Jeg er en ny loggmelding
Tilpasset log2022/01/27 21:40:30 En ny logg, 5 sekunder senere

Tidspunktet mellom den første loggoppføringen og den andre loggoppføringen er 5 sekunder fra hverandre. Dette er på grunn av søvnfunksjonen i koden over.

Konklusjon

Dette innlegget utforsker konseptet med å lage og bygge tømmerhoggere for søknaden din i Go. Ved hjelp av denne guiden kan du komme i gang med å bruke GO -loggpakken og lage avanserte loggmekanismer for applikasjonene dine.

Takk for at du leste!