Filelog behält leere Dateien trotz nrarchive

Begonnen von Invers, 08 August 2015, 11:06:27

Vorheriges Thema - Nächstes Thema

Invers

Ich nutze nrarchive, um Dateien automatisch nach 3 Versionen zu löschen.
Das klappt auch super, bis auf eine Ausnahme:

Meine IT-Logfiles bleiben leer wenn nichts geloggt wird, werden aber trotzdem automatisch angelegt.
Das ist mir eigentlich egal. Was mich aber wundert ist der Umstand, dass keine Dateien gelöscht werden. Alle Dateien ohne Logeinträge bleiben erhalten. Somit habe ich schon eine ganze Menge angesammelt.
Hier mal ein Beispiel, eigentlich dürften hier nur 3 Stück sein:

IT_0F000F000F-2015-07-29.log text
IT_0F000F000F-2015-07-30.log text
IT_0F000F000F-2015-07-31.log text
IT_0F000F000F-2015-08-01.log text
IT_0F000F000F-2015-08-02.log text
IT_0F000F000F-2015-08-03.log text
IT_0F000F000F-2015-08-04.log text
IT_0F000F000F-2015-08-05.log text
IT_0F000F000F-2015-08-06.log text
IT_0F000F000F-2015-08-07.log text
IT_0F000F000F-2015-08-08.log text


Ist denn dieses Verhalten erwünscht? Ich denke, das ist ein Bug. Wozu sollte denn nrarchive bei leeren Dateien eine Ausnahme machen?

Danke.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

rudolfkoenig

Eigentlich gibt es keine Ausnahme fuer leere Dateien. Das Archivieren kann man auch manuell ausloesen mit:
{ HandleArchiving($defs{FileLog_NAME}) }
falls was geloescht wird, steht im FHEM-Log "Deleting DATEINAME" mit loglevel 2.

Falls das nicht drinsteht, dann muss man in fhem.pl/HandleArchiving ein paar
Log 1, "LINE:".__LINE__;
Zeilen einstreuen, um es naeher zu lokalisieren.

Invers

Danke für den Tipp. Hat (halb) geholfen. :-)
Gut, das Auslösen per Hand klappt. Im Log steht:
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-07-28.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-07-29.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-07-30.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-07-31.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-08-02.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-08-03.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-08-04.log
2015.08.08 15:16:15 2: Deleting IT_0FF000FFFF-2015-08-05.log


Das automatische Löschen geht jedoch nicht.
Hast du noch eine Idee? Sonst müsste ich das statt mit nrarchive mit DOIF machen. Es scheint ja nur das automatische Auslösen nicht zu gehen. Vielleicht doch ein Fehler im Code?

Danke.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

rudolfkoenig

Koennte sein, dass du FHEM an den abgebildeten Tagen (== fast taeglich) neu gestartest hast?

HandleArchiving wird nur dann aufgerufen, falls was ins Logfile zu schreiben ist, oder falls man fuers SVG Daten abholt. Ich denke daruber noch nach, ob ich das fixen soll (d.h. auch nach dem Start aufgeraeumt wird), oder nicht.

Invers

Ich starte wirklich fast täglich neu, da ich noch viel an fhem programmiere und auch die Updates mache. Trotzdem klappt es ja bei allen Filets, ausser bei denen, die leer sind. So wie ein Eintrag vorhanden ist, wird auch entsprechend nrarchive archiviert/gelöscht.

Danke.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

rudolfkoenig

Ich habe HandleArchiving beim Startup jetzt eingebaut, bin auf unbeabsichtigte Nebenwirkungen gespannt.

Invers

Vielen Dank. Ich hoffe, dass ausser einem erfreuten Lächeln keine Nebenwsirkungen auftreten. :-)
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Invers

So, habe ein Update gemacht und das erfreute Lächeln ist festzustellen. :-)

Ich habe allerdings einen Effekt bemerkt, von dem ich nicht weiss, ob es so gewollt ist:

Bei mir steht nrarchive auf 3. Es wurden bisher 4 Dateien angezeigt, also 3 von den Vortagen und eine vom aktuellen Tag.
Jetzt ist es so, dass 3 Dateien angezeigt werden und zwar 2 von den Vortagen und eine aktuelle.

Ich werde morgen noch einmal kontrollieren, ob das so bleibt, oder ob der Effekt nur durch die erstmalige Nutzung der Änderung aufgetreten ist.

Nochmals vielen Dank für die Änderung.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Tom111

Hallo Rudi, deine Änderungen bewirkten bei mir nichts gutes, mein LOG-Verzeichnis wurde quasi leergeräumt  :-\ ,
muss ich evtl. bei der Konfiguration was ändern ?

Bspl.:
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
attr Logfile archivedir ./log-archive/
attr Logfile group FHEM-LOG
attr Logfile nrarchive 0
attr Logfile room LOG


Von diesen Thread habe ich erst später erfahren, hier hab ich angefangen:
http://forum.fhem.de/index.php/topic,39883.0.html

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

Fritzi

#9
Zitat von: Tom111 am 10 August 2015, 22:18:12
Hallo Rudi, deine Änderungen bewirkten bei mir nichts gutes, mein LOG-Verzeichnis wurde quasi leergeräumt  :-\ ,
muss ich evtl. bei der Konfiguration was ändern ?

Kann ich bestätigen. Bei mir wurden beim gestrigen Update/Neustart ebenfalls einige log-Files gelöscht. Kam etwas überraschend... ;)
Einige log-Files sind jedoch erhalten geblieben. Und zwar diejenigen bei denen das Attribut nrarchive NICHT gesetzt war.

Dummerweise "baut" fhem die gelöschten log-Files nicht wieder auf.
Die log-File-Definitionen sind allerdings noch in der cfg enthalten.

Grüsse,
Fritzi
FHEM 5.6 auf RaspberryPi2 mit Busware CUL culfw V1.61
CUL_HM     : HM-CC-RT-DN,HM-LC-SW1-FM,HM-LC-Sw1PBU-FM,HM-SEC-SC,HM-Sen-MDIR-O-2,HM-TC-IT-WM-W-EU
FBDECT      : Dect200
HUEDevice  : LCT001,LCT003

Invers

Bei mir funktioniert die Erstellung von Logfiles auch nicht richtig. Ich nur jeden 2. Tag ein Logfile, falls der Vorgänger leer ist, also am Vortag kein Event eingetragen wurde.
Logfiles, die befüllt werden, funktionieren hingegen einwandfrei.
Allerdings archiviere ich keine Dateien, sondern nutze nrarchive lediglich zur Anzahlbegrenzung.

FileLog_IT_F0FFF0FFFF

IT_F0FFF0FFFF-2015-08-08.log text
IT_F0FFF0FFFF-2015-08-10.log text
IT_F0FFF0FFFF-2015-08-12.log text



Wie gesagt, diese Dateien sind leer, weil kein Device etwas gemeldet hat.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

rudolfkoenig

@Invers: habe den off-by-one Fehler jetzt korrigiert, ab jetzt sollten immer 1+nrarchive Dateien existieren.

@Tom111: deine Logfile Definition enthaelt "nrarchive 0", damit hast du das Loeschen aller alten Dateien bestellt. Wg. der gerade gefixten Fehlers wurde am Anfang eine Datei mehr (bei dir damit die aktuelle) geloescht. Eigentlich ist Logfile ein "Fakelog", und wird nur fuer die Darstellung in FHEMWEB benoetigt. Der eigentliche fhem-log samt "korrektes" nrarchive laeuft ueber das global device.

@Fritzi: da steht zu wenig konkretes, dass ich darauf antworten koennte.

Invers

Vielen dank, ich werde es ausprobieren und erneut berichten.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Tom111

Zitat von: rudolfkoenig am 13 August 2015, 20:17:20
@Tom111: deine Logfile Definition enthaelt "nrarchive 0", damit hast du das Loeschen aller alten Dateien bestellt. Wg. der gerade gefixten Fehlers wurde am Anfang eine Datei mehr (bei dir damit die aktuelle) geloescht. Eigentlich ist Logfile ein "Fakelog", und wird nur fuer die Darstellung in FHEMWEB benoetigt. Der eigentliche fhem-log samt "korrektes" nrarchive laeuft ueber das global device.
Was heißt das jetzt konkret ? Muss ich narchive jetzt eine 1 zuweisen !?

Es ist etwas komisch, denn ich habe mich genau an dieser Anweisung gehalten:
http://www.fhemwiki.de/wiki/Logfiles_archivieren
Zitatnrarchive ist 0. Das bedeutet, dass zu jedem Monatswechsel die nun nicht mehr aktuelle FileLog-Datei ins Archive (archivedir) verschoben wird (es werden 0 "alte" Dateien im Orignalverzeichnis gehalten). Wenn man ein weblink_FHT_Bad hat und am 1. März mit dem grünen Pfeil einen Tag zurück browsen möchte, bleibt die Anzeige leer (was bei monatlicher Speicherung nicht weiter schlimm ist - aber eben ein Nebeneffekt).

:-\
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

rudolfkoenig

Konkret heisst das, du sollst nrarchive fuer Logfile entfernen, und "attr global nrarchive 0" setzen. Ab den morgigen update ist das zwar nicht unbedingt noetig, ist aber weniger verwirrend, wenigstens fuer mich.