Hilfe bei Python Logging Facility

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Hilfe bei Python Logging Facility

Beitragvon Mad-Marty » Montag 23. Januar 2006, 16:39

Hi,

ich habe mir angeschaut was ich mit der Python Logging Facility so anstellen kann, und finde das sehr sehr umfangreich.


Mein Ziel ist es Critical und Warnings in getrennte files zu loggen.

Das habe ich auch hinbekommen, über die externe config und die paar aufrufzeilen unten.

Dummerweise loggt aber der WARNING auch CRITICAL.
Wie bekomme ich das weg ?

Ich möchte unbedingt die externe config und das logging verwenden, da ich damit auch spätermal ohne viel aufwand netzwerklogging etc. einsetzen kann.


Ist es evtl total umständlich was ich da Konfiguriert hab ?

Code: Alles auswählen

[loggers]
keys=root,warn_logger,critical_logger

[handlers]
keys=warnhandler,criticalhandler

[formatters]
keys=timestamper

[logger_root]
level=NOTSET
handlers=warnhandler,criticalhandler
propagate=1


[logger_warn_logger]
level=WARN
handlers=warnhandler
qualname=warnlogger
propagate=1


[logger_critical_logger]
level=CRITICAL
handlers=criticalhandler
qualname=criticallogger
propagate=1



[handler_criticalhandler]
class=FileHandler
level=CRITICAL
formatter=timestamper
args=("./fatal.log","w")


[handler_warnhandler]
class=FileHandler
level=WARN
formatter=timestamper
args=("./warnings.log","w")



[formatter_timestamper]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S




Der Aufruf im programm ist dann :

Code: Alles auswählen

logging.config.fileConfig("./config.ini")
        #create logger
        logger = logging.getLogger()
       
       

        logger.debug("debug message")
        logger.info("info message")
        logger.warn("warn message")
        logger.error("error message")
        logger.critical("critical message")
       
        logger.warn("meine warning")
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Beitragvon modelnine » Montag 23. Januar 2006, 16:46

Es ist eigentlich Sinn der Sache dass der WARN-Handler auch alles loggt was in CRITICAL geht, denn schließlich ist das eine >= Relation, und kein direkter Vergleich ob die Loglevels übereinstimmen. Zumindest funktioniert logging so unter Unix, und logger ist mehr oder weniger eine Kopie des syslog-Systems.

Ich wüßte jetzt ehrlich gesagt auch nicht dass man das ändern kann, aber guck in die Doku auf python.org, da steht sicherlich mehr.

--- Heiko.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Beitragvon Mad-Marty » Montag 23. Januar 2006, 23:24

modelnine hat geschrieben:Es ist eigentlich Sinn der Sache dass der WARN-Handler auch alles loggt was in CRITICAL geht, denn schließlich ist das eine >= Relation, und kein direkter Vergleich ob die Loglevels übereinstimmen. Zumindest funktioniert logging so unter Unix, und logger ist mehr oder weniger eine Kopie des syslog-Systems.

Ich wüßte jetzt ehrlich gesagt auch nicht dass man das ändern kann, aber guck in die Doku auf python.org, da steht sicherlich mehr.

--- Heiko.


Habe die Doku gecheckt, steht nichts darüber drin - naja schade.

Blos wo ist dann der sinn der ewig gross auslegbaren verzweigungen ... ;)

ok, trotzdem danke für die Antowort.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Beitragvon modelnine » Montag 23. Januar 2006, 23:31

Der Sinn hinter dem Syslog-System ist es eben eine Datei zu haben in der nur alles ab Level ERROR drin sind (/var/log/auth/error zum Bleistift, ja auch critical Fehler sind Fehler), und alles ab einem gewissen Level in eine andere Datei zu schreiben (zum Beispiel /var/log/everything oder /var/log/messages ab INFO).

Das System macht so schon Sinn. Du kannst halt festlegen dass in eine Datei (oder eben in einen Log-Stream) nur ganz wichtige Meldungen kommen, in einen anderen halt eben alles, usw.

--- Heiko.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Beitragvon Mad-Marty » Montag 23. Januar 2006, 23:33

Ja halt nur schade, mir wäre eine standard log exclusive criticals lieber ;)

Aber das ist eine reine philosophie frage ....

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder