Ankündigung

Einklappen
Keine Ankündigung bisher.

Logging: Informationen aus Hauptlogger weglassen

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

    Logging: Informationen aus Hauptlogger weglassen

    Moin,

    wie kann ich denn Daten aus dem Haupt-Logger weglassen?
    Konkret:
    Code:
    2017-10-08 12:18:48 DEBUG    __init__     Main         KNX[default]: write request from 1.0.50 to 6/5/8 with '5655' and DPT 9 -- __init__.py:parse_telegram:360
    Also der Bus-Monitor soll nicht im Haupt-Log erscheinen.
    Oder (noch besser) ich möchte einen zusätzlichen Logger, der dem Haupt-Log entspricht, nur ohne den Bus-Monitor.

    Meine logging.yaml sieht so aus:
    Code:
    version: 1
    disable_existing_loggers: False
    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'
      busmonitor:
        format: '%(asctime)s;%(message)s'
        datefmt: '%Y-%m-%d %H:%M:%S'
    handlers:
      console:
        class: logging.StreamHandler
        formatter: simple
        stream: ext://sys.stdout
      file:
        class: logging.handlers.TimedRotatingFileHandler
        level: DEBUG
        formatter: detail
        when: midnight
        backupCount: 7
        filename: ./var/log/smarthome.log
      busmonitor_file:
        class: logging.handlers.TimedRotatingFileHandler
        formatter: busmonitor
        when: midnight
        backupCount: 7
        filename: ./var/log/knx_busmonitor.log  
      file_additional_uvr:
        class: logging.handlers.TimedRotatingFileHandler
        formatter: simple
        level: DEBUG
        when: midnight
        backupCount: 7
        filename: ./var/log/smarthome-uvr.log
        encoding: utf8
    loggers:
      plugins.knx:
        level: DEBUG
    #  lib.scheduler:
    #    level: DEBUG
      plugins.alexa:
        level: DEBUG
      plugins.wunderground:
        level: DEBUG
      knx_busmonitor:
        level: INFO
        handlers: [busmonitor_file]
      UVR:
        level: DEBUG
        handlers: [file_additional_uvr]
    root:
        level: INFO
        handlers: [file, console]
    Gruß&Danke,
    Hendrik

    #2
    Gar nicht.

    Der einzige Weg das Hauptlog klein zu halten, ist den Level für das Log auf WARNING zu setzen.

    Hast Du Dir mal meine "Best Practices" zum Logging durchgelesen? https://github.com/smarthomeNG/smart...Best-Practices
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Hallo,

      ja, das Best-Practice habe ich gelesen und schon genutzt.
      Habe ich deinen Vorschlag richtig umgesetzt?
      Code:
        file:
          class: logging.handlers.TimedRotatingFileHandler
          level: WARNING
          formatter: detail
          when: midnight
          backupCount: 7
          filename: ./var/log/smarthome.log
        busmonitor_file:
          class: logging.handlers.TimedRotatingFileHandler
          formatter: busmonitor
          when: midnight
          backupCount: 7
          filename: ./var/log/knx_busmonitor.log  
        file_additional:
          class: logging.handlers.TimedRotatingFileHandler
          formatter: simple
          level: DEBUG
          when: midnight
          backupCount: 7
          filename: ./var/log/smarthome-full.log
          encoding: utf8
      Code:
      loggers:
        __main__:
              handlers: [file_additional]
              level: WARNING
        plugins.knx:
          level: DEBUG
        knx_busmonitor:
          level: INFO
          handlers: [busmonitor_file]
      root:
          level: INFO
          handlers: [file, console]
      Gruß,
      Hendrik

      Kommentar


        #4
        Nein, beim root Logger sollte level: WARNING stehen und bei plugins.knx fehlt die Angabe des Handlers:

        Code:
        loggers:
            # If the logger is created with logging.getLogger(__name__)
            # the logger name is plugins.<plugin-shortname>
        
            __main__:
                # WARNING LEVEL to add restart log messages to further logs
                handlers: [file_additional,q21]
                level: WARNING
        
            plugins.knx:
                handlers: [file_additional]
                level: DEBUG
        
            # Ob der Name des Loggers für den Busmonitor stimmt musst Du prüfen.
            # Ich habe ihn noch nie benutzt.
            knx_busmonitor:
                handlers: [busmonitor_file]
                level: INFO
        
        # root liegt nicht unter loggers!
        root:
            # Ich habe hier beim handler die console weggelassen,
            # da das im deamonized mode von shNG eh keinen Sinn macht.
            level: WARNING
            handlers: [file]
        Viele Grüße
        Martin

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

        Kommentar


          #5
          Danke, werde ich ausprobieren.

          Gruß,
          Hendrik

          Kommentar


            #6
            Hallo,

            Funktioniert. Danke!

            Gruß,
            Hendrik

            Kommentar

            Lädt...
            X