Hauptmenü

[Gelöst]Logfile ist leer

Begonnen von Tommy82, 04 Februar 2014, 07:28:11

Vorheriges Thema - Nächstes Thema

koldomon

Hallo Tommy82

nochmal zu deinem Ursprungsproblem. Ich hatte auch die Erfahrung gemacht, dass wenn man ein Logfile bearbeitet und FHEM läuft, kommt es vor, dass FHEM das Logfile nicht mehr will. Scheint (in meinen Augen) ein Problem mit "Offenen FileHandles" (wie ich es aus Windows kenne) zu sein. Ich hab mir ein kleines Tool geschreiben, was mir die Logfiles archiviert - also alte Einträge in ein Archiv überträgt und nur 4 Wochen im aktuellen Logfile belässt. Zuerst hab ich das aktuelle Logfile neu angelegt (Move Old-File, Create New-File, Write Content), was zu dem von dir beschriebenem Verhalten geführt hat. Nachdem ich es geändert habe (Open Log-File, Purge Content, Write Content, Close Log-File) hat FHEM kein Problem mehr. Theoretisch kann es mir aber immer noch passieren, dass FHEM genau in das Logfile schreiben will, das ich grade Archiviere, dann müsste wieder ein Zugriffskonflikt auftreten und FHEM schreibt nicht mehr in das Log, was nur durch neustart von FHEM zu beheben ist. Aus meiner Sicht ist das "Behavior by design" und hat nix mit FHEM speziell zu tun. Evtl. können die Entwickler hier genauer erklären, ob es sich dabei um ein "Resource-Sharing" problem handelt.

cu markus
OdroidC1 -> fhem
CUNO -> FS20
CUL -> HomeMatic
TCM310 -> enOcean
DUOFERN -> rademacher

Tommy82

Zitat von: koldomon am 05 Februar 2014, 08:52:32
Hallo Tommy82

nochmal zu deinem Ursprungsproblem. Ich hatte auch die Erfahrung gemacht, dass wenn man ein Logfile bearbeitet und FHEM läuft, kommt es vor, dass FHEM das Logfile nicht mehr will. Scheint (in meinen Augen) ein Problem mit "Offenen FileHandles" (wie ich es aus Windows kenne) zu sein. Ich hab mir ein kleines Tool geschreiben, was mir die Logfiles archiviert - also alte Einträge in ein Archiv überträgt und nur 4 Wochen im aktuellen Logfile belässt. Zuerst hab ich das aktuelle Logfile neu angelegt (Move Old-File, Create New-File, Write Content), was zu dem von dir beschriebenem Verhalten geführt hat. Nachdem ich es geändert habe (Open Log-File, Purge Content, Write Content, Close Log-File) hat FHEM kein Problem mehr. Theoretisch kann es mir aber immer noch passieren, dass FHEM genau in das Logfile schreiben will, das ich grade Archiviere, dann müsste wieder ein Zugriffskonflikt auftreten und FHEM schreibt nicht mehr in das Log, was nur durch neustart von FHEM zu beheben ist. Aus meiner Sicht ist das "Behavior by design" und hat nix mit FHEM speziell zu tun. Evtl. können die Entwickler hier genauer erklären, ob es sich dabei um ein "Resource-Sharing" problem handelt.

cu markus

Hallo Markus,
du bist da definitiv tiefer im Thema wie ich.
Deine idee mit dem Archivieren des Logfiles (würde sogar nur die letzten zwei Wochen im aktuellen lassen wollen) gefällt mir sehr gut.
Kannst du mir erklären wie genau du das umgesetzt hast?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

Kann ich irgendwie die Logfile größe begrenzen?
Problem ist das ich jetztim Webif nur daten bis zum 22.02 angezeigt bekomme, danach nur noch einen Leeren Bildschirm, ich denke das liegt an der größe des Logs.
Mir würde reichen wenn der Log immer nur die letzte zwei Wochen speichern würde.
Das Logfile hat über 90MB.
Ist auch komplett da wenn ich es runterlade, nur im WebIf wird es falsch dagestellt
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

betateilchen

Du kannst das Logging auf Wochen-Logs oder Monats-Logs oder Tages-Logs einstellen - ganz wie Du willst. Das wird einfach in der Log-Definition selbst mit angegeben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tommy82

Hallo betateilchen, danke für die Antwort
DIe momentane Log Defination ist
attr global verbose 2
wie kann ich die um den Zeitraum erweitern?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

betateilchen

Das ist doch nicht die Logdefinition  :-\

Mach mal ein "list Logfile" in der Kommandozeile.
Und schau mal in der commandref unter "FileLog" nach, da ist die Syntax erklärt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tommy82

List Logfile sagt
Internals:
   DEF        ./log/fhem-%Y-%m.log fakelog
   NAME       Logfile
   NR         13
   NTFY_ORDER 50-Logfile
   REGEXP     fakelog
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/fhem-2014-02.log
   logfile    ./log/fhem-%Y-%m.log
Attributes:

Im Commandref kann ich nur finden wie ich per Cmd nur einen bestimmten Bereich mir anzeigen lasse, aber ich will ja das der gesamte Log nicht so gross wird!?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

betateilchen

Zitat von: Tommy82 am 26 Februar 2014, 10:47:28

List Logfile sagt



Internals:
   DEF        ./log/fhem-%Y-%m.log fakelog



%Y-%m bedeutet, dass fhem Logfiles pro Monat anlegen soll. Das sind jeweils Platzhalter, die in "echte" Dateinamen umgewandelt werden.

Zitat von: Tommy82 am 26 Februar 2014, 10:47:28Im Commandref kann ich nur finden wie ich per Cmd nur einen bestimmten Bereich mir anzeigen lasse

das stimmt definitiv nicht, denn in der commandref  zu Filelog steht sehr ausführlich:

Zitat

Define
define <name> FileLog <filename> <regexp>

Log events to <filename>. The log format is

YYYY-MM-DD_HH:MM:SS <device> <event>

The regexp will be checked against the device name devicename:event or timestamp:devicename:event combination. The regexp must match the complete string, not just a part of it.
<filename> may contain %-wildcards of the POSIX strftime function of the underlying OS (see your strftime manual). Common used wildcards are:
%d day of month (01..31)
%m month (01..12)
%Y year (1970...)
%w day of week (0..6); 0 represents Sunday
%j day of year (001..366)
%U week number of year with Sunday as first day of week (00..53)
%W week number of year with Monday as first day of week (00..53)


Da sind alle Informationen enthalten und erklärt, die Du brauchst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tommy82

Sorry, hatte das im Commandref so verstanden alsob es dort nur um die Log Bezeichnung geht

Aber mir ist trotzdem noch nicht ganz klar wie ich das jetzt setzen soll, das immer nur die letzten zwei Wochen geloggt werden und die älteren Daten gelöscht werden?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

betateilchen

Du definierst Dir ein Tages-Log

/log/fhem-%Y-%m-%d.log

und setzt das globale Attribut "nrarchive" auf 14. Damit behältst Du 14 Logs der vergangenen 14 Tage, und immer das älteste wird von fhem automatisch gelöscht.

Oder Du definierst Dir ein Wochen-Log (wie das geht, steht ja schon weiter oben) und setzt das globale Attribut "nrarchive" auf 2.


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tommy82

Also einfach ein
define /log/fhem-%Y-%m-%d.log ?

Wo finde ich das globale Attribut "nrarchive" und wie ändere ich das?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

wtue

Also entweder in der fhem.cfg

attr global nrarchive 3

save oder rereadcfg nicht vergessen je nach dem wie du es machst.

Oder zu global gehen und auswählen, anschließend save nicht vergessen.

Gruß Werner
Raspi B+ mit HM-CFG-USB umgestellt von FB7390 mit CUL
8 HM-CC-RT-DN / 3 HM-LC-Bl1-FM / 10 HM-LC-Bl1PBU-FM / 1 HM-LC-Sw1PBU-FM / HM-LC-DIM1T-FM
3 FBDECT Schaltsteckdosen als Energiemonitore

Tommy82

dann geb ich das in der fhem.cfg ein.

Und wie definiere ich den Log? So wie ich dachte gehts nicht
define /log/fhem-%Y-%m-%d.log
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

wtue

Ja das gehört alles in die fhem.cfg.

Schau dir mal den Link http://forum.fhem.de/index.php/topic,15805.msg142843.html#msg142843
an. Da habe ich zu meinem Problem eine recht kleine fhem.cfg gepostet. Darin gibt es eine Logdefinition zur allgemeinen fhem.log aus auch zu den Logfiles die bei autocreate erstellt werden ( Sensoren und Aktoren).

Gruß Werner
Raspi B+ mit HM-CFG-USB umgestellt von FB7390 mit CUL
8 HM-CC-RT-DN / 3 HM-LC-Bl1-FM / 10 HM-LC-Bl1PBU-FM / 1 HM-LC-Sw1PBU-FM / HM-LC-DIM1T-FM
3 FBDECT Schaltsteckdosen als Energiemonitore

betateilchen

Man editiert die fhem.cfg nicht von Hand!

Basta.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!