Ankündigung

Einklappen
Keine Ankündigung bisher.

Logging...?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Morg
    antwortet
    Den Loglevel im Betrieb zu ändern hilft mir aber nicht wirklich... wozu sollte ich das brauchen?

    Neustarten muss ich, weil ich am Code was geändert habe, das geht m.W. noch nicht "live"

    Und an den cherrypy-Logger komme ich im Admin-GUI nicht dran, jedenfalls wüsste ich nicht, wie. Insbesondere, weil der Screen-Logger anscheinend auch nicht groß konfiguriert werden kann..

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Wenn Du die Logger entsprechend konfiguriert hast, kannst Du in der Admin GUI zur Laufzeit den Loglevel der jeweiligen Logger unter Logs/Liste der Logger einstellen (aber nur wenn der Logger schon existiert).

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Das generelle Logging funktioniert ja, im Wesentlichen auch so, wie ich es haben wollte. Ich habe jetzt nochmal das Logging auf Basis der Default-Config neu aufgesetzt. (NB: das Loggin im Produktivsystem ist ja okay. Zum Testen mit ständigem Neustart von shng ist das aber unpraktisch, darum ist meine Config deutlich vom Default weg)

    Auch der root-Logger war nicht das Problem, den habe ich ja nur in eine Datei loggen lassen, da sollte ja DEBUG rein, das passte auch.

    Das Problem ist cherrypy, das immer auf Konsole loggt und sich nicht an die logging-Vorgaben hält, soweit man sie konfigurieren kann (oder ich weiß nicht, wie).Ich habe das jetzt manuell abgewürgt, indem ich im http-Modul
    ```
    cherrypy.config.update({'log.screen': False})
    ```
    eingefügt habe. Jetzt kann ich den Rest der Logs auch ausreichend steuern.

    Ist die "screen"-Ausgabe von cherrypy ausdrücklich gewünscht? Sonst könnte man das ggf. dauerhaft unterdrücken und das Loggin über die plugin-Section der logging.yaml besser steuern...

    Die Ideen aus den Best Practices werde ich für den Rest noch umsetzen, da stehen noch ein paar gute Sachen drin.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Wenn Du den root Logger auf Debug setzt, bekommst Du alle denug Ausgaben ins Log. Das geht nicht anders (Python Standard). Deshalb sollte der root Lgger immer auf WARNING stehen.

    Hast Du Dir in der Doku https://www.smarthomeng.de/user/konf...n/logging.html und den Unterpunkt Best Practices durchgelesen? Die Doku versucht die Komplexität des Python Logging Systems etwas zugänglicher zu machen.

    Fang mal an Dein Logging von der Default Config aus anzupassen (etc/logging.yaml.default)

    Einen Kommentar schreiben:


  • Morg
    hat ein Thema erstellt Logging...?.

    Logging...?

    Moin,

    dass ich mit der neuen Logging-Konfiguration nicht warm werde, ist eine Sache - aber sie macht es mir auch nicht einfach.

    Ich möchte:
    "Standard"-Log WARN+ in Datei smarthome-warn.log
    alles DEBUG+ in Datei smarthome.log
    NUR plugin.kodi debug auf smarthome-kodi.log und Konsole -> insbesondere keine DEBUG-Ausgaben vom http-Modul!
    um die Module "einzufangen", habe ich die ausschließlich auf smarthome-http.log geleitet - dachte ich.

    meine logging.yaml:
    Code:
    %YAML 1.1
    # vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab
    ---
    version: 1
    disable_existing_loggers: true
    formatters:
        simple:
            format: '%(asctime)s %(levelname)-8s %(threadName)-12s %(message)s'
            datefmt: '%Y-%m-%d    %H:%M:%S'
        detail:
            format: '%(asctime)s %(levelname)-8s %(module)-12s %(threadName)-12s %(message)s -- %(filename)s:%(funcName)s:%(lineno)d'
            datefmt: '%Y-%m-%d %H:%M:%S'
    
    handlers:
        console:
            class: logging.StreamHandler
            formatter: simple
            stream: ext://sys.stdout
        file_kodi:
            class: logging.handlers.TimedRotatingFileHandler
            level: DEBUG
            formatter: simple
            when: midnight
            backupCount: 7
            filename: ./smarthome-kodi.log
        file:
            class: logging.handlers.TimedRotatingFileHandler
            level: WARN
            formatter: detail
            when: midnight
            backupCount: 7
            filename: ./smarthome-warn.log
        file_debug:
            class: logging.handlers.TimedRotatingFileHandler
            level: DEBUG
            formatter: detail
            when: midnight
            backupCount: 7
            filename: ./smarthome.log
        file_http:
            class: logging.handlers.TimedRotatingFileHandler
            level: DEBUG
            formatter: detail
            when: midnight
            backupCount: 7
            filename: ./var/log/http.log
    
    loggers:
        plugins.kodi:
            handlers: [console, file_kodi]
        modules.admin:
            handlers: [file_http]
            level: WARN
        modules.http:
            handlers: [file_http]
            level: WARN
    
    root:
        level: DEBUG
        handlers: [file]
    Ergebnis: Konsole voll mit DEBUG vom http-Modul. Kann man das nicht abstellen?
Lädt...
X