Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

plugin schreibt logfile nur bei "smarthome -d"

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

    plugin schreibt logfile nur bei "smarthome -d"

    Hallo,

    versuche meinem ersten Pythonskript das schreiben in ein Logfile zu ermöglichen. Die entsprechenden Zeilen sind:
    Code:
    logfile = open("alarmanlagelog","a")
    print(time.ctime(), ' EG: Bewegungsmelder Wohnzimmer hat ausgelöst i=',i ,  file=logfile)
    -wenn ich sh.py als smarthome-user im debugmodus starte schreibt er brav das log. Allerdings erst nachdem ich sh.py beendet hab (ctrl+c). Beim erneuten starten mit -d geht das loggen nicht mehr.
    -wenn ich sh.py über das init.d skript (ohne -d) starte bleibt das log immer leer.

    Die Datei alarmanlagelog hat folgende Rechte:
    Code:
    -rw-rw-r-- 1 smarthome smarthome 8215 Jun 10 16:25 alarmanlagelog
    smarthome@bananapi:/usr/local/smarthome$
    Was mache ich falsch, oder wo kann ich mir eine logics.conf abschauen, die erfolgreich logs schreibt?
    Zuletzt geändert von Stefan BaWue; 10.06.2015, 19:30.

    #2
    Hi Stefan,

    du solltest die Logfile nach dem Schreiben auch wieder schließen ...

    Code:
    logfile = open("alarmanlagelog","a")
    print(time.ctime(), ' EG: Bewegungsmelder Wohnzimmer hat ausgelöst i=',i , file=logfile)
    [B]logfile.close[/B]
    Noch geschickter gehts mit "with":
    Code:
    with open("alarmanlagelog","a") as logfile:
        print(time.ctime(), ' EG: Bewegungsmelder Wohnzimmer hat ausgelöst i=',i , file=logfile)
    Grüße
    offline

    Kommentar


      #3
      Vielen Dank offline. Das löst tatsächlich dieses Problem:
      -wenn ich sh.py als smarthome-user im debugmodus starte schreibt er brav das log. Allerdings erst nachdem ich sh.py beendet hab (ctrl+c). Beim erneuten starten mit -d geht das loggen nicht mehr.
      Wieder was gelernt. Das andere Problem: skript schreibt kein logfile, wenn ich es über "/etc/init.d/smarthome start" starte ist leider weiterhin da. Auch nach einem reboot.

      Kommentar


        #4
        Hi Stefan,

        probiere mal die Logdatei mit absolutem Pfad anzugeben.

        Grüße
        offline

        Kommentar


          #5
          vielen Dank.
          Mit "with open("/usr/local/smarthome/var/log/alarmanlagelog","a") as logfile:" legt er die Datei an und schreibt auch was rein...beim 2. skript start hängt er an...insofern ist das Problem gelöst.

          Kommentar

          Lädt...
          X