Ankündigung

Einklappen
Keine Ankündigung bisher.

Logging...?

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

    #31
    Was ich eigentlich sagen wollte, ist das folgenden Konfigruation dazu führt, das jede WARNING (und ERROR) doppelt im Log erscheint.
    Zumindest hatte ich das Verhalten so letztens beobachtet und hatte deshalb wohl oben nicht genau genug gelesen.
    Code:
        plugins:
            handlers: [shng_details_file]
            level: WARNING​​
        plugins.pluginname:
            handlers: [shng_details_file]
            level: INFO​
    Im zweiten Teil braucht man kein "handlers" mehr angeben. Kann das aber natürlich machen, wenn man einen Anderen (andere Datei) benutzen möchte.
    Danke fürs klarstellen.

    Kommentar


      #32
      Moin,

      mein Eindruck war, dass man im Gegensatz zu den Plugin-Loggern bei den Modul-Loggern im zweiten Teil doch einen eigenen Handler braucht. Jetzt habe ich nochmal die aktuellste logging.default.yaml der v1.9.3 genommen und die Einstellungen übertragen. Zusätzlich habe ich den neuen Logger angelegt, dieses Mal mit Handler:
      Code:
          modules:
              # Default logger for SmartHomeNG modules
              handlers: [shng_details_file]
              level: WARNING
      
          modules.websocket:
              handlers: [shng_details_file]
              level: INFO
      ​
      Jetzt erhalte ich die Meldungen des Websocket-Moduls in der Datei "smarthome-details.log" wieder doppelt (siehe oben):
      Code:
      2023-01-17  09:44:09 WARNING  modules.websocket   smartVISU_protocol_v4 error: Client myiPad.x.y (192.168.2.106:53313), smartVISU v3.3.a, Safari 16 - no close frame received or sent
      2023-01-17  09:44:09 WARNING  modules.websocket   smartVISU_protocol_v4 error: Client myiPad.x.y (192.168.2.106:53313), smartVISU v3.3.a, Safari 16 - no close frame received or sent
      2023-01-17  09:44:09 INFO     modules.websocket   smartVISU_protocol_v4: Client 192.168.2.106:53313 stopped
      2023-01-17  09:44:09 INFO     modules.websocket   smartVISU_protocol_v4: Client 192.168.2.106:53313 stopped
      2023-01-17  09:44:09 INFO     modules.websocket   USER removed: 192.168.2.106:53313 - local port: 2424
      2023-01-17  09:44:09 INFO     modules.websocket   USER removed: 192.168.2.106:53313 - local port: 2424​
      In die Datei "smarthome-warnings.log" wird die WARNING jedoch nur einmal geschrieben. Lasse ich den Logger "modules.websocket" weg und stelle den Logger "modules" auf INFO, erhalte ich die INFO-Meldungen vom Websocket-Modul nur einmal - aber eben alle Meldungen der anderen Module auch.

      Gruß
      Wolfram

      Kommentar


        #33
        Zitat von wvhn Beitrag anzeigen
        mein Eindruck war, dass man im Gegensatz zu den Plugin-Loggern bei den Modul-Loggern im zweiten Teil doch einen eigenen Handler braucht.
        Warum sollte da so sein? Beim Logging handelt es sich um eine Python Stanard Funktionalität (und Python interessiert sich nicht dafür, war ein Modul und was ein Plugin ist )

        Zur Erklärung:

        1. Die Handler haben auch einen Loglevel. Der steuert, welche Meldnugen durch den Handler ausgegeben werden:
        • shng_warnings_file hat den Level NOTICE. Es werden also nur NOTICE, WARNING, ERROR und CRITICAL Meldungen durch den Handler ausgegeben.
        • shng_details_file hat den Level DEBUG. Es werden also alle Meldungen durch den Handler ausgegebe.
        2. Bei den Loggern gibt es eine Vererbung:
        • Wenn ein Parameter nicht angegeben wird, wird er vom übergeordneten Logger übernommen
        • Listen Parameter werden mit dem entsprechenden Parameter vom übergeordneten Logger gemergt

        Code:
          modules:
                # Default logger for SmartHomeNG modules
                handlers: [shng_details_file]
                level: WARNING
        
            modules.websocket:
                handlers: [shng_details_file]
                level: INFO
        führt also dazu, dass in der Handler Liste für modules.websocket zwei mal der Handler shng_details_file steht, daher die doppelte Ausgabe. Da der Handler shng_warnings_file den Level NOTICE hat, ​erfolgt die Ausgabe der INFO Meldungen nicht in durch diesen Logger.

        Wenn (wie in diesem Beispiel) die Liste der Handler gleich ist, sollte man sie im untergeordneten Logger weglassen. Dann sind auch die doppelten Logeintäge weg.
        Viele Grüße
        Martin

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

        Kommentar


          #34
          Msinn
          danke für die super Erklärung. Ich hab es jetzt nochmal ohne Handler probiert und jetzt klappt es. Jetzt wird auch der Logger als untergeordneter Logger erkannt, was vorher anders war.
          grafik.png
          Entweder war meine logging.yaml zu alt, oder ich hatte einen Fehler in den Einrückungen.

          Gruß
          Wolfram

          Kommentar


            #35
            Auch von mir nochmal Danke für die ausführliche Erklärung.
            Ich hatte es nämlich anderst verstanden.

            Viele Grüße
            Stefan

            Kommentar

            Lädt...
            X