FHEM Forum

FHEM => Frontends => Thema gestartet von: Invers am 08 August 2015, 11:06:27

Titel: Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 08 August 2015, 11:06:27
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.

Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: rudolfkoenig am 08 August 2015, 13:58:42
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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 08 August 2015, 15:21:02
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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: rudolfkoenig am 08 August 2015, 17:16:34
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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 08 August 2015, 17:29:41
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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: rudolfkoenig am 09 August 2015, 11:50:16
Ich habe HandleArchiving beim Startup jetzt eingebaut, bin auf unbeabsichtigte Nebenwirkungen gespannt.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 09 August 2015, 17:17:02
Vielen Dank. Ich hoffe, dass ausser einem erfreuten Lächeln keine Nebenwsirkungen auftreten. :-)
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 10 August 2015, 08:25:50
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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag 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 ?

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
Titel: Filelog behält leere Dateien trotz nrarchive
Beitrag von: Fritzi am 11 August 2015, 21:02:50
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
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 13 August 2015, 09:14:30
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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: rudolfkoenig am 13 August 2015, 20:17:20
@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.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Invers am 13 August 2015, 20:24:16
Vielen dank, ich werde es ausprobieren und erneut berichten.
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: Tom111 am 13 August 2015, 20:39:58
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 (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).

:-\
Titel: Antw:Filelog behält leere Dateien trotz nrarchive
Beitrag von: rudolfkoenig am 13 August 2015, 20:52:01
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.