Ankündigung

Einklappen
Keine Ankündigung bisher.

Logging in Logiken

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

    Logging in Logiken

    Mit SmartHomeNG 1.51 ist das Logging viel umfangreicher geworden. Und so habe ich mir die Mühe gemacht, den alten Logger zu entsorgen und alles auf das neue "System" umzustellen. Allerdings funktionieren dann viele alte Sachen so nicht mehr:

    Code:
    import logging
    logger = logging.getLogger('logics.'+__name__)
    logger.info('Aufruf Logik {}'.format(__name__))
    Muss ich das jetzt so schreiben?

    Code:
    import logging
    logger = logging.getLogger('logics.ex_logging')
    logger.info('Aufruf Logik {}'.format(__name__))
    Das schreibt zumindest schon mal was in die Log-Datei. Allerdings stimmt der Name der Logik im Log nicht, denn da steht dann "lib.scheduler" und nicht der Name der Logik.

    #2
    Zum logging von Logiken in der ../etc/logging.yaml folgendes konfigurieren:

    unter loggers: den Loglevel für die gewünschte Logik setzen:

    Code:
    logger:
        ...
    
        logics.<Name der Logik>
            handlers: [shng_details_file]
            level: INFO
    Damit kann man für jede Logik den Loglevel und über die handler: Angabe das Ziel-Log seperat einstellen.

    Nachtrag:

    Du solltest ohne
    Code:
    import logging
    logger = logging.getLogger('logics.ex_logging')
    einfach logger.info aufrufen. Der Logger hat dann den Namen logics.<Name der Logik>
    Zuletzt geändert von Msinn; 26.01.2019, 10:04.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Danke. Und geht das auch global, ohne dass ich für jede Logik separat einstellen muss? Denn ich halte es für überdimensioniert für jede kleine, "poplige" Logik einen extra Logger anzulegen, zumal das auch nur temporär ist UND jedes mal auch SmartHomeNG neu gestartet werden muss. Das tolle bei Logiken ist, dass man SmartHomeNG nicht neu starten muss.

      Kommentar


        #4
        Ja, das geht auch global für alle Logiken, hab es bei mir auch so eingestellt:

        Code:
        logger:
            ...
                
            logics:
                handlers: [shng_details_file]
                level: INFO
        Gruß, Mike
        Zuletzt geändert von Mike01; 26.01.2019, 10:46.

        Kommentar


          #5
          Zitat von Mike01 Beitrag anzeigen
          Ja, das geht auch global für alle Logiken, hab es bei mir auch so eingestellt:
          Code:

          logger: ... logics: handlers: [shng_details_file] level: INFO
          Gruß, Mike
          Läuft. Danke! :-)

          Kommentar

          Lädt...
          X