ConcurrentLogHandler

Gelijktijdige logging-handler (drop-in vervanging voor roterende handler)
Download nu

ConcurrentLogHandler Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • The Apache License 2.0
  • Prijs:
  • FREE
  • Naam uitgever:
  • Lowell Alleman

ConcurrentLogHandler Tags


ConcurrentLogHandler Beschrijving

Concurrent Logging Handler (Drop-in vervanging voor RotatingFileHandler) ConcurrentLogHandler is een Python-module die een extra log-handler biedt voor het standaard logboekpakket van Python (PEP 282). Deze handler zal log-gebeurtenissen schrijven naar het logbestand dat wordt geroteerd wanneer het logbestand een bepaalde omvang bereikt. Meerdere processen kunnen veilig schrijven naar hetzelfde logbestand concurrerend .DaillesDe ConcurrentotatingFileHandler klasse is een drop-in vervanging voor de standaard log-handler RotatingFilehandler van Python. Deze module maakt gebruik van bestandsvergrendeling, zodat meerdere processen tegelijkertijd kunnen inloggen op een enkel bestand zonder de logevenementen van het logboek te laten vallen of cloberen. Deze module biedt een bestandsrotatieregeling zoals met RotatingFilehanler. Er wordt extra aandacht besteed om ervoor te zorgen dat logs veilig kunnen worden geroteerd voordat het rotatieproces wordt gestart. (Deze module werkt rond het bestand hernoemende uitgifte met RotatingFileHandler op Windows, waarbij een rotatiestoring betekent dat alle volgende loggebeurtenissen worden gevallen). Deze module probeert in staat om de logboekrecords te behouden. Dit betekent dat logbestanden groter worden dan de opgegeven maximale (rotatie) -formaat. Dus als de schijfruimte strak is, wilt u misschien blijven bij rotatingFileHandler, die zich strikt aan de maximale bestandsgrootte zal hechten. Als u meerdere instanties van een script (of meerdere scripts) hebt, die allemaal tegelijkertijd worden uitgevoerd en naar hetzelfde logboek wordt uitgevoerd Bestand, dan moeten alle scripts ConcurrentotatingFileHandler gebruiken. U moet niet proberen om RotatingFileHandler en ConcurrentotingFileHandler te mixen en te matchen. Deze pakketbundels Portalocker om te gaan met bestandsvergrendeling. Houd er rekening mee dat Portalocker op dit moment alleen Unix (POSIX) een NT-platforms ondersteunt en daarom ondersteunt dit pakket alleen die platforms. Installatie De volgende opdracht om dit pakket te installeren: Easy_Install ConcurrentLogHandlerif U installeert u vanuit de bron, u kunt gebruiken: Python Setup.py InstallexAmplessImple Erom is een voorbeeld van het zien hoe u deze module rechtstreeks (van binnen Python-code) kunt gebruiken: van logging import getlogger, InfoFROM ClogHandler Import ConcurrentotatingFileHandlerImport Oslog = GetLogger () # Gebruik een absolute pad om te voorkomen dat bestandsrotatieproblemen. Logfile = os.path.abspath ("mylogfile.log") # Roteren Log na het bereiken van 512k, houd 5 oude exemplaren.rotatehandler = ConcurrentotatingFileHandler (LogFile, "A", 512 * 1024, 5) Log.Addhandler (RotateHandler) Log.setLevel ( Info) Log.info ("Hier is een zeer opwindend logbericht, alleen voor u") Automatische terugval Treamingif U distribueert uw code en u bent niet zeker of het concurrentLogHandler-pakket is geweest Overal geïnstalleerd, wordt uw code uitgevoerd, Python maakt het gemakkelijk om de ingebouwde draaiende FileHandler te forceren, hier is een voorbeeld: Probeer: van ClogHandler Import ConcurrentotatingFileHandler als rfhandlerExcept importeurror: # Volgende 2 lijnen zijn optioneel: een waarschuwing voor de gebruiker van waarschuwingen uitgeven Importeren Warn Warn ("ConcurrentLogHandler-pakket niet geïnstalleerd. Met behulp van ingebouwde log-handler ") van loggen. Handlers importeren RotatingFileHandler als rfhandlerlog = GetLogger () Rotatehandler = rfhandler (" / pad / naar / mylogfile.log "," A ", 1048576, 15) Log.AddHandler (rotateHandler) Config-bestand examplethis Voorbeeld laat u zien hoe u deze log-handler kunt gebruiken met de Logging Config File Parser. Hiermee kunt u uw logboekconfiguratiecode afzonderlijk van uw toepassingscode gebruiken. Sample Config-bestand: Logging.ini: KEYS = root KEYS = Hand01 KEYS = FORM01 Niveau = NOTSETHANDLERS = Hand01 Klasse = Handlers.concurrentrotatingFileHandlerLevel = NOTSETSFORMATE = FORM01ARGS = ("Rotating.log", "A", 512 * 1024, 5) Formaat = % (ASTCTIME) S% (LevelName) s% (bericht) Sexample Python Code: App.py:Import Logging, Logging.ConfigImport CloghandlerLogging.config.fileconfig ("Logging.ini") Log = Logging.getLogger () Log.info ("Hier is een zeer opwindend logbericht, alleen voor u") Vereisten: · Python Wat is er nieuw in deze release: · Vaste lock-bestand naamgeving · Zet een ondergeschikte kwestie op waarbij lock-bestanden verkeerd zouden worden genoemd als het logbestand ".log" in het midden van de logboeknaam bevat. Als u bijvoorbeeld logbestand "/var/log/mycompany.logging.mySource.log" was, zou het slotbestand worden genoemd "/var/log/mycompany.ging.mySource.lock", die niet correct is. Dank aan Dirk Rothe om dit te wijzen. Aangezien dit een lichtvergrendelingsverschil introduceert, zorg er dan voor dat alle concurentieve schrijvers tegelijkertijd worden bijgewerkt tot 0.8.4 als dit probleem u beïnvloedt. · Bijgewerkte EZ_SETUP.PY TOT 0.6C11


ConcurrentLogHandler Gerelateerde software