Het gebruik van de logboekbibliotheek in Ruby is een gemakkelijke manier om bij te houden wanneer er iets mis is gegaan met uw code. Wanneer er iets misgaat, kan een gedetailleerd overzicht van wat er precies is gebeurd voorafgaand aan de fout u uren besparen bij het lokaliseren van de bug. Naarmate uw programma's groter en complexer worden, wilt u misschien een manier toevoegen om logberichten te schrijven. Ruby wordt geleverd met een aantal handige klassen en bibliotheken die de standaardbibliotheek worden genoemd. Een daarvan is de logboekbibliotheek, die geprioriteerde en geroteerde logboekregistratie biedt.
Omdat de logger-bibliotheek wordt geleverd met Ruby, is het niet nodig om edelstenen of andere bibliotheken te installeren. Als u de logboekbibliotheek wilt gaan gebruiken, hebt u gewoon 'logger' nodig en maakt u een nieuw Logger-object. Alle berichten die naar het Logger-object worden geschreven, worden naar het logboekbestand geschreven.
#! / usr / bin / env ruby
vereisen 'logger'
log = Logger.new ('log.txt')
log.debug "Logbestand aangemaakt"
Elk logboekbericht heeft een prioriteit. Deze prioriteiten maken het eenvoudig om in logbestanden naar serieuze berichten te zoeken en het logger-object automatisch kleinere berichten te filteren wanneer ze niet nodig zijn. Je kunt het een beetje als je takenlijst voor die dag bedenken. Sommige dingen moeten absoluut worden gedaan, sommige dingen moeten echt worden gedaan, en sommige dingen kunnen worden uitgesteld totdat je tijd hebt om ze te doen.
In het vorige voorbeeld was de prioriteit debug, het minst belangrijke van alle prioriteiten (de "uitgesteld totdat je tijd hebt" van je takenlijst, als je wilt). De prioriteiten van het logboekbericht, in volgorde van minst naar belangrijkste, zijn als volgt: foutopsporing, info, waarschuwen, fout en fataal. Om het niveau van berichten in te stellen dat de logger moet negeren, gebruikt u de niveau attribuut.
#! / usr / bin / env ruby
vereisen 'logger'
log = Logger.new ('log.txt')
log.level = Logger :: WARN
log.debug "Dit wordt genegeerd"
log.error "Dit wordt niet genegeerd"
U kunt zoveel logboekberichten maken als u wilt en u kunt elk klein dingetje dat uw programma doet, registreren, wat prioriteiten uiterst nuttig maakt. Wanneer u uw programma uitvoert, kunt u het logboekniveau op iets als waarschuwen of fouten laten staan om de belangrijke dingen te vangen. Als er vervolgens iets misgaat, kunt u het logboekniveau verlagen (in de broncode of met een opdrachtregelschakelaar) voor meer informatie.
De logboekbibliotheek ondersteunt ook logrotatie. Logboekrotatie voorkomt dat logboeken te groot worden en helpt bij het zoeken door oudere logboeken. Als logrotatie is ingeschakeld en het logboek een bepaalde grootte of een bepaalde leeftijd bereikt, zal de logboekbibliotheek de naam van dat bestand wijzigen en een nieuw logboekbestand maken. Oudere logbestanden kunnen ook worden geconfigureerd om na een bepaalde leeftijd te worden verwijderd (of "uit rotatie te vallen").
Om logrotatie in te schakelen, geeft u 'maandelijks', 'wekelijks' of 'dagelijks' door aan de Logger-constructor. Optioneel kunt u een maximale bestandsgrootte en aantal bestanden doorgeven aan de constructor.
#! / usr / bin / env ruby
vereisen 'logger'
log = Logger.new ('log.txt', 'daily')
log.debug "Zodra het logboek ten minste één wordt"
log.debug "dag oud, het wordt hernoemd en een"
log.debug "nieuw log.txt-bestand wordt gemaakt."