lggr

Python-logging voor mensen
Download nu

lggr Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Peter Downs
  • Uitgever website:
  • https://github.com/peterldowns/

lggr Tags


lggr Beschrijving

Heb je ooit geprobeerd om iets te doen met de Python Logging-module? Ik heb. Ik vond het helemaal niet leuk. De API was erg verwarrend. In plaats van te gaan met al zijn intricacies, besloot ik om het mijne te rollen. Ik ben geïnspireerd door de presentatie van Dabeazz op Coroutines en de presentatie van Kenneth Reitz over betere Python-bibliotharies.Installpip Installeer LGGrhow werkt? Maak het? Maak een logger-object.import lggrd = LGGR.LGGR () Voeg een coroutine (of een functie of object met verzend- en sluitingsmethoden toe) om logberichten te consumeren. LGGR bevat enkele standaardinstellingen: - LGGR.PRINTER () schrijft naar stdout-lggr.stderrprinter () schrijft naar stderr- lggr.printer (FilePath) opent een bestand op FilePath en schrijft naar dat .- LGGR.SocketWriter (Host, Port) Schrijft aan een netwerkaansluiting - LGGR.Emailer (ontvangers) verzendt e-mails- lggr.gmailer (ontvangers, gmail_username, gmail_password, subject = "optioneel") stuurt ook e-mails, maar komt het uit Gmail, wat veel sexier is dan het van uzelf te doen server. Je kunt ervoor kiezen om verschillende coroutines aan verschillende niveaus van logboekniveaus toe te voegen. Misschien wil je e-mails ontvangen voor al je kritieke berichten, maar print alleen naar Stderr voor alles anders.D.ADDD (D.all, LGGR.PRINTER ()) # D.All is een snelkoppeling om een coroutine toe te voegen aan alle niveaus .ADD (D.Critical, LGGR.EMAILER ("Peterldowns@gmail.com"))) Doe wat loggen.d.info ("Hallo, World!") D.Warning ("Iets lijkt te zijn gegaan {Desc}", {"Desc": "Amuck!"}) D.Kritical ("Iemand {} US {} the {}!", "Set", "up", "Bomb") D.Sluit () # Stop loggen Informatie kan ik log? Alles wat je wilt. Logberichten worden gemaakt met behulp van Str.Format, zodat u echt alles kunt maken wat u maar wilt. Het standaardformaat bevat toegang tot de volgende variabelen: - LevelName = niveau van loggen als een tekenreeks ("Info") - Levelno = Logging als een geheel getal (0) - Pathname = Path naar het bestand dat de logboekfunctie is genoemd (~ / Test.py) - FileName = Bestandsnaam De logboekfunctie werd genoemd van (test.py) - module = module De loggingfunctie werd van (in dit geval geen) - Exc_info = Execution Information, ofwel ingeschakeld of SYS .Info () - Stack_info = Stack-informatie, gemaakt als het optionele Inc_Stack_info-argument waar is (het is standaard ingesteld op FALSE, indien niet expliciet is gepasseerd) of de logboekfunctie wordt genoemd met instanties van cruciale, debug of fout. - FUNCNAME = DE FUNCTION NAME- CODE = De exacte code die de Logging Function-CodeContext heeft genoemd = omliggen van 10 lijnen rondcode-proces = Huidige proces-ID-processName = naam van het huidige proces, als multiprocessing beschikbaar is - Assime = TIJD AS string (van time.asctime ()) - tijd = Tijd als seconden van EPOCH (van Time.Time ()) - Threadid = De draad-ID, als de draadmodule beschikbaar is - ThreadName = de draadnaam, als de draadmodule beschikbaar is - MessageFMT = De indelingsstring die moet worden gebruikt Maak het logbericht - LogMessage = De geformatteerde Message van de gebruiker - DefaultFMT = Het standaardformaat van een Log-messageof dat u extra informatie wilt gebruiken, eenvoudigweg een dict kunt doorgeven met het genoemde argument Extra: >>> D.Config = '{naam} SEZ: {logmessage}' >>> d.info ("Dit is de {}", "bericht", extra = {"naam": "PETER"}) Peter Sez: Dit is de Messagea Stack_info Examplestack_info is cool omdat je je echt nuttige tracebacks kunt doen waar je precies je logboekfunctie wordt genoemd. Bijvoorbeeld, met wat logger D, zou ik het volgende kunnen uitvoeren: D.Config = '{ASCTIME} ({LevelName}) {LogMessage} \ Nin {Pathname}, lijn {LINENO}: \ n {codecontext } 'Def BUITE (A): DEF INNER (B): DEF FINAL (C): D.Kritisch ("Easy AS {}, {}, {}!", A, B, C) Return Final Return Innerouter (1 ) (2) (3) Output: ma apr 223:31:222012 (kritisch) eenvoudig als A, B, C! In test.py, lijn 29: D.Config = '{asctime} ({LevelName}) {LogMessage} \ Nin {Pathname}, Line {LINENO}: \ n {CODECONTEXT} 'DEF BUITE (A): DEF BINNEN (B): DEF FINAL (C):> D.Kritical ("Easy als {}, {}, {}! ", A, B, C) Return Final Return Innerouter (1) (2) (3) Homepage


lggr Gerelateerde software

telefoon

Een databasebibliotheek voor het opslaan van objecten in een relationele database ...

74

Downloaden