Brug af Logger-biblioteket: Sådan skriver du logfiler i Ruby

click fraud protection

Brug af loggerbiblioteket i Rubin er en nem måde at holde styr på, når noget er gået galt med din kode. Når noget går galt, kan det spare dig timer i at lokalisere fejlen ved at have en detaljeret redegørelse for nøjagtigt, hvad der skete frem til fejlen. Når dine programmer bliver større og mere komplekse, kan du tilføje en måde at skrive logmeddelelser på. Ruby leveres med et antal nyttige klasser og biblioteker kaldet standardbiblioteket. Blandt disse er loggerbiblioteket, der giver prioriteret og roteret logning.

Grundlæggende anvendelse

Da loggerbiblioteket leveres med Ruby, er der ingen grund til at installere ædelstene eller andre biblioteker. For at begynde at bruge loggerbiblioteket, skal du blot kræve 'logger' og opret et nyt Logger-objekt. Eventuelle meddelelser, der er skrevet til Logger-objektet, skrives til logfilen.

#! / usr / bin / env ruby
kræver 'logger'
log = Logger.new ('log.txt')
log.debug "Logfil oprettet"

prioriteter

Hver logmeddelelse har en prioritet. Disse prioriteter gør det let at søge i logfiler efter seriøse meddelelser, såvel som at loggerobjektet automatisk filtrerer ud mindre meddelelser, når de ikke er nødvendige. Du kan tænke på den som din Opgaveliste for dagen. Nogle ting skal absolut gøres, nogle ting skal virkelig gøres, og nogle ting kan frasættes, indtil du har tid til at gøre dem.

instagram viewer

I det forrige eksempel var prioriteten fejlfinde, den mindst vigtige af alle prioriteter ("udsæt indtil du har tid" på din opgaveliste, hvis du vil). Logbeskedprioriteterne, i rækkefølge fra mindst til vigtigste, er som følger: debug, info, advare, fejlog dødelig. Hvis du vil indstille niveauet for meddelelser, som loggeren skal ignorere, skal du bruge niveau attribut.

#! / usr / bin / env ruby
kræver 'logger'
log = Logger.new ('log.txt')
log.level = Logger:: WARN
log.debug "Dette ignoreres"
log.error "Dette ignoreres ikke"

Du kan oprette så mange logmeddelelser, som du vil, og du kan logge alle de små ting, dit program gør, hvilket gør prioriteter yderst nyttige. Når du kører dit program, kan du forlade logger-niveauet på noget som advarsel eller fejl for at fange de vigtige ting. Når der derefter går noget galt, kan du sænke loggerniveauet (enten i kildekoden eller med en kommandolinjekontakt) for at få mere information.

Rotation

Loggerbiblioteket understøtter også logrotation. Logrotation forhindrer, at logfilerne bliver for store og hjælper med at søge gennem ældre logfiler. Når logrotation er aktiveret, og loggen når enten en bestemt størrelse eller en bestemt alder, vil loggerbiblioteket omdøbe filen og oprette en ny logfil. Ældre logfiler kan også konfigureres til at blive slettet (eller "falde ud af rotation") efter en bestemt alder.

For at aktivere logrotation skal du videregive 'månedligt', 'ugentligt' eller 'dagligt' til Logger-konstruktøren. Valgfrit kan du videregive en maksimal filstørrelse og antal filer for at holde rotation til konstruktøren.

#! / usr / bin / env ruby
kræver 'logger'
log = Logger.new ('log.txt', 'daglig')
log.debug "Når loggen bliver mindst en"
log.debug "dag gammel, det omdøbes og en"
log.debug "ny log.txt fil oprettes."
instagram story viewer