Ankündigung

Einklappen
Keine Ankündigung bisher.

Logging - Filter

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

    Logging - Filter

    Ich habe die versucht einzurichten, aber die werden nicht gefiltert. Was mache ich falsch?

    Code:
    filters:
    
        attribute_undefined_filter:
            (): lib.logutils.Filter
            module: lib.metadata
            msg: "Attribute is undefined and has value"
    
        sdp_squeezebox_filter:
            (): lib.logutils.Filter
            name: sdp_squeezebox
            msg: "Test"
    
    handlers:
    
        shng_warnings_file:
            (): lib.log.ShngTimedRotatingFileHandler
            formatter: shng_simple
            level: NOTICE
            utc: false
            when: midnight
            backupCount: 7
            filename: ./var/log/smarthome-warnings.log
            encoding: utf8
            filters: [sdp_squeezebox_filter, attribute_undefined_filter]
    ​
    Der Attribut-Filter geht nicht. Der andere ist erst mal nur zum testen.

    #2
    Mach mal "(.*)Attribute is undefined and has value(.*)"

    Kommentar


      #3
      Zitat von Onkelandy Beitrag anzeigen
      Mach mal "(.*)Attribute is undefined and has value(.*)"
      Geht nicht.

      Das steht im Log:

      Code:
      WARNING  lib.metadata        Item 'Zentral.Anwesenheit.schalten', attribute 'Anwesenheit': Attribute is undefined and has value 'Schalter' (defined in Anwesenheit.yaml)
      Das hatte ich gerade ergänzt:

      Code:
              msg: "(.*)Attribute is undefined and has value(.*)"
      Wird aber nicht gefiltert.

      Kommentar


        #4
        Hast du mal ohne module probiert?

        Kommentar


          #5
          Zitat von Onkelandy Beitrag anzeigen
          Hast du mal ohne module probiert?
          Ohne "module" und mit den "(.*)" geht das. Da würde ich nie selbst drauf kommen. Danke für die Hinweise.

          Schön, dass mein Log jetzt so viel leerer ist.

          Kommentar


            #6
            Schön, dass du das Plugin weiter testest Es gibt auf https://github.com/Morg42/smarthome/tree/sdp und https://github.com/Morg42/plugins/tree/sdp-plugin übrigens kleine Änderungen und Verbesserungen, vielleicht kannst du die aktuelle Version auch mal testen?
            Mit module: metadata klappt es übrigens auch. Ich aktualisiere mal die Doku entsprechend.
            Zuletzt geändert von Onkelandy; 13.01.2023, 13:42.

            Kommentar


              #7
              Zitat von Onkelandy Beitrag anzeigen
              vielleicht kannst du die aktuelle Version auch mal testen
              Werde ich. Ich melde mich dann.

              Kommentar


                #8
                Noch mal Feedback, wenn das vielleicht jemand anders mal brauchen sollte. So geht es jetzt. Wichtig ist auch, dass bei der "name" das "plugins." davor geschrieben wird, sonst geht es nicht. Hier:

                Code:
                filters:
                    attribute_undefined_filter:
                        (): lib.logutils.Filter
                        msg: "(.*)Attribute is undefined and has value(.*)"
                        
                    sdp_squeezebox_filter:
                        (): lib.logutils.Filter
                        name: plugins.sdp_squeezebox
                        msg: "(.*)not assigned to any item, discarding data(.*)"​
                Code:
                    shng_warnings_file:
                        (): lib.log.ShngTimedRotatingFileHandler
                        formatter: shng_simple
                        level: NOTICE
                        utc: false
                        when: midnight
                        backupCount: 7
                        filename: ./var/log/smarthome-warnings.log
                        encoding: utf8
                        filters: [sdp_squeezebox_filter, attribute_undefined_filter]​

                Kommentar


                  #9
                  Ich pushe das hier nochmal - es gab darüber ja vor geraumer Zeit eine kontroverse Diskussion. Dass man Attribute beliebig definieren und benutzen kann, wie man sie gerade braucht, war mal eines der Hauptkriterien für mich, warum ich mich überhaupt für das damalige smarthome.py entschieden habe.

                  Ist das im vorherigen Post nach wie vor der einzige Weg, die "Attribute is undefined" Fehlermeldungen aus dem Log verschwinden zu lassen, oder gibt es da mittlerweile eine Einstellung?

                  Hintergrund: Ich versuche derzeit, eine item.yaml zu erstellen, die von 2 verschiedenen Plugins mit deren jeweils eigenen Attributdefinitionen benutzt werden kann, aber die gleiche Item-Grundstruktur hat, da es um das gleiche Gerät geht. Es ist aber immer nur eines dieser beiden Plugins aktiv, daher wird mir natürlich mit den Attributen des jeweils anderen bei jedem Start das Log vollgemüllt (ca 70kB je Aufruf). Unschön.,

                  /tom

                  Kommentar


                    #10
                    Zitat von Tom Bombadil Beitrag anzeigen
                    Ist das im vorherigen Post nach wie vor der einzige Weg, die "Attribute is undefined" Fehlermeldungen aus dem Log verschwinden zu lassen, oder gibt es da mittlerweile eine Einstellung?
                    Ich meine es gibt kein anderen Weg. Ich habe das eingebaut und nun nervt mich diese Warnung nicht mehr.

                    Das Problem bei der Sache ohne Filter ist, dass es keien Attributsdefinition in Logiken, was der 2. Grund wäre, gibt. Und auch ich mache extrem viel mit Logiken.

                    Kommentar


                      #11
                      Was genau stört dich an der Filter-Lösung? Deckt die deinen Bedarf nicht ab? Ansonsten gerne auf github einen Issue mit einem Lösungsvorschlag und Argumentation erstellen.

                      Kommentar


                        #12
                        Zitat von Onkelandy Beitrag anzeigen
                        Was genau stört dich an der Filter-Lösung? Deckt die deinen Bedarf nicht ab? Ansonsten gerne auf github einen Issue mit einem Lösungsvorschlag und Argumentation erstellen.
                        Nein, ich habe sie bei mir nicht zum Laufen bekommen, daher die Frage, ob es auch einen anderen Weg oder vielleicht sogar eine Option gibt. Hab mich wohl einfach zu dämlich für copy-paste angestellt. Aber nvm, hat sich erledigt, sorry für die Frage.

                        /tom

                        Kommentar


                          #13
                          Zitat von Tom Bombadil Beitrag anzeigen
                          Nein, ich habe sie bei mir nicht zum Laufen bekommen
                          Wichtig ist vielleicht noch, dass das, wenn das auch im shng_details_file nicht drin sein soll, dass auch da der Filter eingetragen muss. Bei mir wirds jetzt nirgends mehr angezeigt, da diese Warnung für mich völlig nutzlos ist und keinen Sinn gibt

                          Kommentar


                            #14
                            Es gibt noch 2 Ansätze, die euch helfen könnten:
                            - Sofern das Plugin in etc/plugin.yaml drin ist, aber mittels plugin_enabled: False ausgeschaltet wird, kommen auch keine Meldungen wegen Attribute
                            - Startet ein Attribut mit my_ wird die Meldung auch nicht geloggt.

                            Kommentar


                              #15
                              Zitat von Onkelandy Beitrag anzeigen
                              Startet ein Attribut mit my_ wird die Meldung auch nicht geloggt
                              Das ist ein super Ansatz. Wusste ich bisher nicht, aber so kann man ja seine eigenen Attribute so definieren, dass da eben auch keine Meldungen kommen. Dann macht auch das Logging an der Stelle Sinn.

                              Kommentar

                              Lädt...
                              X