Ich erstellte eine einfache Benutzeroberfläche für meine Anwendung mit Curses und ich schließe auch Protokolle (Protokollierung) in meine Module mit Herarchie Struktur (logmain, logmain.child1) und so weiter.So verwalten Sie die Anmeldung in Flüche
Wenn ein Protokollereignis auftritt, wird das Protokoll in meiner Benutzerschnittstelle angezeigt, wodurch seine Erscheinungsform zerstört wird. Ich habe auch ein Pad (myLogPad) erstellt, um dort die eingehenden Protokolle zu topt, aber ohne Erfolg. Wie kann ich das Log-Ereignis abfangen und es in einem bestimmten Bereich (letzte Zeile) meines Bildschirms drucken?
def setupLogger(name,file_name):
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
#formatter = logging.Formatter(
# "%(asctime)s %(threadName)-11s %(levelname)-10s %(message)s")
formatter = logging.Formatter('%(asctime) -25s - %(name) -15s - %(levelname) -10s - %(message)s')
formatterDisplay = logging.Formatter('%(asctime)-8s|%(name)-12s|%(levelname)-6s|%(message)-s', '%H:%M:%S')
# Alternative formatting available on python 3.2+:
# formatter = logging.Formatter(
# "{asctime} {threadName:>11} {levelname} {message}", style='{')
# Log to file
filehandler = logging.FileHandler(file_name, 'w')
filehandler.setFormatter(formatter)
logger.addHandler(filehandler)
# Log to stdout too
streamhandler = logging.StreamHandler()
streamhandler.setFormatter(formatterDisplay)
logger.addHandler(streamhandler)
Ich versuche mylog Pad im streamhandler = logging.StreamHandler() übergeben, aber ohne Erfolg. Irgendeine Idee? Danke
danke zeeMonkeez. Ich habe deinen Vorschlag genau verfolgt und verstanden! Unten habe ich das Finale-Beispiel hinzugefügt. –