Använda Logger-biblioteket - Hur man skriver loggmeddelanden i Ruby

Att använda loggerbiblioteket i Ruby är ett enkelt sätt att hålla reda på när något har gått fel med din kod. När något går fel kan du spara timmar när du hittar felet genom att ha en detaljerad redogörelse för exakt vad som hände fram till felet. När dina program blir större och mer komplexa kanske du vill lägga till ett sätt att skriva loggmeddelanden. Ruby kommer med ett antal användbara klasser och bibliotek som kallas standardbiblioteket. Bland dessa är loggerbiblioteket, som ger prioriterad och roterad loggning.

Grundläggande användning

Eftersom loggerbiblioteket levereras med Ruby, finns det inget behov av att installera några ädelstenar eller andra bibliotek. För att börja använda loggerbiblioteket behöver du bara "logger" och skapa ett nytt Logger-objekt. Eventuella meddelanden skrivna till Logger-objektet skrivs till loggfilen.

#! / usr / bin / env ruby
kräver "logger"
log = Logger.new ('log.txt')
log.debug "Loggfil skapad"

prioriteringar

Varje loggmeddelande har en prioritet. Dessa prioriteringar gör det enkelt att söka i loggfiler efter seriösa meddelanden, samt att loggerobjektet automatiskt filtrerar bort mindre meddelanden när de inte behövs. Du kan tänka på det som din Att göra-lista för dagen. Vissa saker måste absolut göras, vissa saker bör verkligen göras, och vissa saker kan skjutas upp tills du har tid att göra dem.

I föregående exempel var prioriteten debug, den minst viktiga av alla prioriteringar ("skjuta tills du har tid" på din Att göra-lista, om du vill). Prioriteringarna för loggmeddelanden, för att vara minst till viktigast, är följande: felsökning, info, varning, fel och dödlig. För att ställa in nivån på meddelanden som loggen ska ignorera, använd nivå attribut.

#! / usr / bin / env ruby
kräver "logger"
log = Logger.new ('log.txt')
log.level = Logger :: WARN
log.debug "Detta kommer att ignoreras"
log.error "Detta kommer inte att ignoreras"

Du kan skapa så många loggmeddelanden som du vill och du kan logga in alla små saker som ditt program gör, vilket gör prioriteringar extremt användbara. När du kör ditt program kan du lämna loggernivån på något som varning eller fel för att fånga de viktiga sakerna. Sedan, när något går fel, kan du sänka loggernivån (antingen i källkoden eller med en kommandoradströmbrytare) för att få mer information.

Rotation

Loggerbiblioteket stöder också loggrotation. Loggarotation hindrar loggar från att bli för stora och hjälper till att söka igenom äldre loggar. När loggrotation är aktiverad och loggen når antingen en viss storlek eller en viss ålder, byter loggerbiblioteket den filen och skapar en ny loggfil. Äldre loggfiler kan också konfigureras för att raderas (eller "falla ur rotation") efter en viss ålder.

För att aktivera loggrotation, skicka 'månad', 'vecko' eller 'dagligen' till loggerkonstruktören. Valfritt kan du skicka en maximal filstorlek och antal filer för att hålla rotation till konstruktören.

#! / usr / bin / env ruby
kräver "logger"
log = Logger.new ('log.txt', 'daglig')
log.debug "När loggen blir minst en"
log.debug "dag gammal, det kommer att byta namn och en"
log.debug "ny log.txt-fil skapas."