De loggerbibliotheek gebruiken: logboeken schrijven in Ruby

De logger-bibliotheek gebruiken in Robijn is een makkelijke manier om bij te houden wanneer er iets mis is gegaan met je code. Als er iets misgaat, kunt u uren besparen bij het lokaliseren van de bug door een gedetailleerd verslag te hebben van wat er precies is gebeurd voorafgaand aan de fout. 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 noemden de standaardbibliotheek. Een daarvan is de loggerbibliotheek, die logboeken met prioriteit en geroteerd biedt.

Basisgebruik

Omdat de loggerbibliotheek bij Ruby wordt geleverd, is het niet nodig om edelstenen of andere bibliotheken te installeren. Om te beginnen met het gebruik van de loggerbibliotheek, gewoon vereisen 'logger' en maak een nieuw Logger-object. Alle berichten die naar het Logger-object worden geschreven, worden naar het logbestand geschreven.

#! / usr / bin / env robijn
vereisen 'logger'
log = Logger.new ('log.txt')
log.debug "Logbestand gemaakt"
instagram viewer

Prioriteiten

Elk logboekbericht heeft een prioriteit. Deze prioriteiten maken het eenvoudig om in logbestanden te zoeken naar serieuze berichten, en het loggerobject filtert automatisch kleinere berichten uit als ze niet nodig zijn. Je kunt het een beetje zien als je takenlijst voor vandaag. Sommige dingen moeten absoluut worden gedaan, sommige moeten echt worden gedaan en sommige dingen kunnen worden uitgesteld totdat u tijd heeft om ze te doen.

In het vorige voorbeeld was de prioriteit debuggen, de minst belangrijke van alle prioriteiten (de "uitstel tot je tijd hebt" van je takenlijst, als je wilt). De logberichtprioriteiten, in volgorde van minst naar belangrijk, zijn als volgt: debuggen, info, waarschuwen, fouten dodelijk. Gebruik het om het niveau van berichten in te stellen dat de logger moet negeren niveau attribuut.

#! / usr / bin / env robijn
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 logberichten maken als u wilt en u kunt elk klein dingetje dat uw programma doet, loggen, wat prioriteiten uiterst nuttig maakt. Wanneer u uw programma uitvoert, kunt u het loggerniveau op een waarschuwing of fout laten staan ​​om de belangrijke dingen te vangen. Als er dan iets misgaat, kunt u het loggerniveau verlagen (in de broncode of met een opdrachtregelschakelaar) voor meer informatie.

Rotatie

De loggerbibliotheek ondersteunt ook logboekrotatie. Logboekrotatie zorgt ervoor dat logboeken niet te groot worden en helpt bij het zoeken door oudere logboeken. Wanneer logboekrotatie is ingeschakeld en het logboek een bepaalde grootte of een bepaalde leeftijd bereikt, zal de loggerbibliotheek dat bestand hernoemen en een nieuw logbestand maken. Oudere logbestanden kunnen ook worden geconfigureerd om na een bepaalde leeftijd te worden verwijderd (of "uit de rotatie te raken").

Om logboekrotatie mogelijk te maken, 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 robijn
vereisen 'logger'
log = Logger.new ('log.txt', 'dagelijks')
log.debug "Zodra het logboek er ten minste één is geworden"
log.debug "dag oud, het wordt hernoemd en een"
log.debug "er wordt een nieuw log.txt-bestand gemaakt."
instagram story viewer