FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tomspatz am 26 Juli 2018, 18:50:17

Titel: Logfiles Pfad
Beitrag von: tomspatz am 26 Juli 2018, 18:50:17
Irgendwie verstehe ich es nicht. Das Ziel ist ALLE logs, pfade zu ändern.
Unter global gibt es ja :
attr global logfile /opt/fhem/log/fhem-%Y-%m-%d.log

ändern würde ich das so:
attr global logfile /mein_neuer_pfad/fhem-%Y-%m-%d.log

oder gar nicht ändern und NUR das attr logdir setzen:
attr global logfile /opt/fhem/log/fhem-%Y-%m-%d.log
attr global logdir /mein_neuer_pfad/fhem-%Y-%m-%d.log


Das anschliesend noch das Logfile selbst angepasst werden muss ist klar:
defmod Logfile FileLog /mein_neuer_pfad/fhem-%Y-%m-%d.log fakelog

Die Logs aller anderen devices schnallen das dann??

Und zuguter letzt noch:
ZitatFalls gesetzt, wird %L in dem logfile Attribut (oder in der Dateinamen Spezifikation des FileLog Moduls) durch den Wert des Attributes ersetzt. Achtung: ändern des Wertes bewirkt nicht das Verschieben bereits erstellter Dateien, und kann zu diversen Problemen führen.

BITTE kann mir das jemand erklären.

LG
Tom
Titel: Antw:Logfiles Pfad
Beitrag von: Wernieman am 26 Juli 2018, 19:32:30
Anstatt FHEM .. versuche es auf Systemebene mit Symlinks ...
Titel: Antw:Logfiles Pfad
Beitrag von: betateilchen am 26 Juli 2018, 20:08:39
Zitat von: tomspatz am 26 Juli 2018, 18:50:17
Und zuguter letzt noch:
BITTE kann mir das jemand erklären.

Nichts leichter als das.

Wenn Du das globale Attribut logdir setzt

attr global logdir ./log

kannst Du im DEFINE eines Log-devices einfach schreiben

define Logfile FileLog %L/fhem-%d.log fakelog

und das erzeugt folgendes Ergebnis (man achte auf das INTERNAL currentlogfile)


Internals:
   CFGFN     
   DEF        %L/fhem-%d.log fakelog
   NAME       Logfile
   NR         82
   NTFY_ORDER 50-Logfile
   REGEXP     fakelog
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/fhem-26.log
   logfile    %L/fhem-%d.log
   READINGS:
     2018-07-26 00:00:02   linesInTheFile  0
Attributes:
   group      90 System
   nrarchive  3
   room       98 Logfiles
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 26 Juli 2018, 20:22:13
betateilchen, Du warst schneller.

Ich hatte es fast genauso fertig, aber da ich von Haus aus faul bin, wuerde ich den Slash zwischen Pfad und  Dateiname
im logdir-Attribut unterbringen, also

attr global logdir ./log/
define Logfile FileLog %Lfhem-%d.log fakelog


Und habe den Hinweis dazugeschrieben, dass die Umstellung mittels der GUI im laufenden Betrieb wohl nicht unfallfrei,
also nur mit Verlust von Logdaten hinzukriegen ist.

Jedenfalls muss das "%L" in allen FileLog- und in der global logfile-Definition anstelle des Pfades eingetragen werden.

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: tomspatz am 27 Juli 2018, 09:00:34
OK erst mal Dankeschön, ich probiere es zu interpretieren.

attr global logdir /mein_neuer_pfad_absolut/
attr global logfile L%fhem-%Y-%m-%d.log


sowie:
defmod Logfile FileLog L%fhem-%Y-%m-%d.log fakelog

und natürlich ALLE FileLog's die ich selbst gebaut habe.
Was passiert denn mit den FileLogs der vielen devices die automatisch angelegt worden sind während Ihrer Inklusion?
Und wie sieht es dann mit devices die noch NEU dazu kommen aus?

Das die vorhandenen Daten in das neue Verzeichnis von Hand verschoben müssen ist mir bewusst.

LG
Tom
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 27 Juli 2018, 14:40:58
Zitat von: tomspatz am 27 Juli 2018, 09:00:34
Was passiert denn mit den FileLogs der vielen devices die automatisch angelegt worden sind während Ihrer Inklusion?
Und wie sieht es dann mit devices die noch NEU dazu kommen aus?
Hallo Tom,

da ich inzwischen auf DBLog umgestiegen bin, kann ich Dir aktuell zu automatisch angelegten FileLogs nichts sagen,
aber meine habe ich in der Vergangenheit immer selbst anlegen muessen.

Aber sollte es einen Automatismus geben, wird auch der mit an Sicherheit grenzender Wahrscheinlichkeit das
logdir-Attribut auswerten. Probier es aus.

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: Otto123 am 27 Juli 2018, 15:44:35
Hi,

aber bitte mit richtigem Copy&Paste
L% -> %L

Gruß Otto
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 27 Juli 2018, 16:15:19
Danke, Otto. Ist immer gut, wenn wenn jemand so aufmerksam liest, wie Du. Das war mir entgangen.

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: tomspatz am 27 Juli 2018, 18:05:45
grrrrrr ja auch gesehen allerdings habe ich es so geschrieben und nicht kopiert.
Irgendetwas hakt da allerdings.
attr global logdir /opt/fhem_backup_logs/logs/
attr global logfile %Lfhem-%Y-%m-%d.log


wird auch erkannt
currentlogfile
/opt/fhem_backup_logs/logs/fhem-2018-07-27.log


defmod Logfile FileLog %Lfhem-%Y-%m-%d.log fakelog

currentlogfile
/opt/fhem_backup_logs/logs/fhem-2018-07-27.log


Auch wird das Logfile schon dort geschrieben aber leider nicht angezeigt.
ZitatFür folgende Webadresse wurde keine Webseite gefunden: http://192.168.1.220:8083/fhem/FileLog_logWrapper&dev=Logfile&type=text&file=%Lfhem-%Y-%m-%d.log.


Was fehlt denn da noch ?

LG
Tom
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 27 Juli 2018, 18:34:18
Hallo Tom,

Moment, Du hast ein FileLog mit dem Device-Namen Logfile und demselben Namen wie das globale Logfile angelegt?
Was da passiert, weiss ich nicht, aber mit Sicherheit ist das keine gute Idee.

Ich muss gestehen, auch das ist mir eben entgangen. Das globale Logfile wird mit dem "attr global logfile" schon 
hinreichend beschrieben, Dein zusaetzliches "defmod Logfile FileLog" ist ueberfluessig, in diesem speziellen Fall sogar
schaedlich. betateilchen hatte in seinem Beispiel extra "%L/fhem-%d.log" geschrieben um Verwechselungen zu vermeiden.

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: tomspatz am 27 Juli 2018, 18:50:59
Helmut ......

natürlich habe ich kein zweites global angelegt.
Inzwischen funktioniert es auch ABER die Lösung für faule:
ZitatIch hatte es fast genauso fertig, aber da ich von Haus aus faul bin, wuerde ich den Slash zwischen Pfad und  Dateiname
Funktioniert nicht.
Richtig ist:
attr global backupdir /mein_neuer_pfad
attr global logfile %L/fhem-%Y-%m-%d.log


Im FileLog funktioniert die Variable nicht, dort muss es dann unter DEF heißen:
/mein_neuer_pfad/fhem-%Y-%m-%d.log fakelog

LEIDER werden alle anderen FileLogs nicht berücksichtigt, somit muss man jeden anfassen und dort den Pfad mit der Variablen ändern. Und die alten nicht vergessen zu kopieren.

LG
Tom
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 27 Juli 2018, 19:14:47
Zitat von: tomspatz am 27 Juli 2018, 18:50:59
Inzwischen funktioniert es auch ABER die Lösung für faule:Funktioniert nicht.

Hallo Tom,

Du hast doch selbst geschrieben "Auch wird das Logfile schon dort geschrieben aber leider nicht angezeigt."
Also hat der Teil schon funktioniert; moeglich ist trotzdem ein Problem bei der Anzeige mit dem Web-Interface.

Zitat von: tomspatz am 27 Juli 2018, 18:50:59
Im FileLog funktioniert die Variable nicht, dort muss es dann unter DEF heißen:
/mein_neuer_pfad/fhem-%Y-%m-%d.log fakelog
Komisch, im "list" wurde die Variable richtig ersetzt. Ist es vielleicht ein aehnliches Problem wie mit dem global Logfile?
Wenn das grundsaetzlich nicht funktionierte, waere das Attribut "global logdir" einigermassen ueberfluessig.

Eine sicher auch ueberfluessige Frage dennoch: Du hattest fhem neu gestartet?

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: tomspatz am 27 Juli 2018, 19:58:45
ja neu gestartet logo.

Ist doch alles in Butter. Ich habe etwas falscher hineinkopiert.
attr glogal logdir muss absolut sein und mit einem slash am Ende. Somit muss auch wieder ein slash zwischen %L und der DEF.
Sonst funktioniert das nicht. Und im fakelog muss der Pfag auch absolut sein.

attr global logdir /opt/fhem_backup_logs/logs
attr global logfile %L/fhem-%Y-%m-%d.log

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


Was wiederum funktioniert ist:
attr global statefile %L/fhem.save

Schön wäre es wenn neue devices das erkennenwürden RUDI !!
Vielleicht hörst du mich  ;)

LG
Tom
Titel: Antw:Logfiles Pfad
Beitrag von: betateilchen am 28 Juli 2018, 01:07:52
Zitat von: tomspatz am 27 Juli 2018, 19:58:45
Somit muss auch wieder ein slash zwischen %L und der DEF.
Sonst funktioniert das nicht.

Dass helmut "faule" Lösung nicht funktioniert, hätte mir ohenhin niemand geglaubt, wenn ich ihm widersprochen hätte.

Gut, dass Du inzwischen selbst draufgekommen bist und das bestätigt hast :)




Zitat von: tomspatz am 27 Juli 2018, 19:58:45
attr glogal logdir muss absolut sein

Nein.

Zitat von: tomspatz am 27 Juli 2018, 19:58:45
Und im fakelog muss der Pfag auch absolut sein.

Nein.




Aber was meinst Du damit?

Zitat von: tomspatz am 27 Juli 2018, 19:58:45
Schön wäre es wenn neue devices das erkennenwürden RUDI !!
Titel: Antw:Logfiles Pfad
Beitrag von: tomspatz am 28 Juli 2018, 11:15:08
ZitatDass helmut "faule" Lösung nicht funktioniert, hätte mir ohenhin niemand geglaubt, wenn ich ihm widersprochen hätte.
HAHAHA

hmmmm bei mir liegt das Verzeichnis außerhalb vom fhem Verzeichnis. und zwar /opt/fhem_backup_logs/backup
Wie soll fhem das dann mitbekommen wenn nicht absolut?

ZitatSchön wäre es wenn neue devices das erkennenwürden RUDI !!
Damit meine ich wenn die Variablen in global gesetzt sind und man jetzt ein neues z.B. z-wave device inkludiert, wird ja auch ein Logfile dazu erzeugt. Wird das dann berücksichtigt oder händisch ändern?

Und  "RUDI !!" sollte nur nach Ihm rufen weil er das warscheinlich am besten in der Hand hat.  ;)
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 28 Juli 2018, 13:05:37
Zitat von: betateilchen am 28 Juli 2018, 01:07:52
Dass helmut "faule" Lösung nicht funktioniert, hätte mir ohenhin niemand geglaubt, wenn ich ihm widersprochen hätte.

Sie funktioniert ein Stueck weit, naemlich solange Du nicht ueber das Web-Interface auf die Logdaten
zugreifen willst. Dabei greift das offensichtlich nicht auf das Internal currentlogfile zu, sondern substituiert die
Variablen selbst, was fuer diesen Fall schief geht - warum auch immer.

Dabei habe ich gelernt, dass die interne Verarbeitung und das Web-Interface durchaus unterschiedliche Dinge
sein koennen. Sorry, dass ich damit Verwirrung gestiftet habe.

Im Anhang (ausnahmsweise) ein Screenshot auf dem zu sehen ist, dass die Substituierung fuer den Fall
"attr global logdir mein-test-logdir/" inklusive des Schreibens in die Datei intern durchaus erwartungsgemaess
funktioniert.

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: betateilchen am 28 Juli 2018, 13:13:25
Zitat von: helmut am 28 Juli 2018, 13:05:37
Sie funktioniert ein Stueck weit

Genau das ist der Punkt: es funktioniert, aber nicht überall.
Ausserdem finde ich den slash zwischen %L und einer dahinter stehenden Angabe durchaus intuitiver :)
Titel: Antw:Logfiles Pfad
Beitrag von: betateilchen am 28 Juli 2018, 13:16:15
Zitat von: tomspatz am 28 Juli 2018, 11:15:08
Damit meine ich wenn die Variablen in global gesetzt sind und man jetzt ein neues z.B. z-wave device inkludiert, wird ja auch ein Logfile dazu erzeugt. Wird das dann berücksichtigt oder händisch ändern?

Wenn Du das entsprechende Attribut "logfile" in Deinem autocreate device entsprechend gesetzt hast, sollte es funktionieren. Ein Blick in die commandref kann oft helfen.

Zitat von: tomspatz am 28 Juli 2018, 11:15:08
bei mir liegt das Verzeichnis außerhalb vom fhem Verzeichnis

Ok, in dem Fall hast Du recht.

Zitat von: tomspatz am 28 Juli 2018, 11:15:08
Und  "RUDI !!" sollte nur nach Ihm rufen weil er das warscheinlich am besten in der Hand hat.

Schon klar. Aber Rudi liest die Anfängerfragen höchst selten. Für autocreate ist ein anderer Forumbereich zuständig.
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 28 Juli 2018, 13:28:49
Zitat von: betateilchen am 28 Juli 2018, 13:13:25
Genau das ist der Punkt: es funktioniert, aber nicht überall.
Ausserdem finde ich den slash zwischen %L und einer dahinter stehenden Angabe durchaus intuitiver :)

"nicht ueberall" habe ich akzeptiert, musste ich aber nicht vermuten; denn in der commandref ist es anders beschrieben:
ZitatIf set, the %L attribute in the logfile attribute (or in the FileLog modules file definition) is replaced wth the value of the attribute
Zu diesem Wert gehoert nach meinem Verstaendnis auch der Slash.

Was die Intuition angeht, bin ich geneigt Dir recht zu geben. Lass mich trotzdem faul sein und weiter automatisieren ;-)

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: betateilchen am 28 Juli 2018, 13:30:15
Zitat von: helmut am 28 Juli 2018, 13:28:49
Lass mich trotzdem faul sein

Dann nimm DbLog, dann brauchst Du nichtmal mehr das Attribut zu setzen  8)
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 28 Juli 2018, 13:33:29
Bin Habe ich doch laengst  :P
Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: helmut am 29 Juli 2018, 13:22:39
Hallo betateilchen, hallo Tom,

morgen frueh steht die Aenderung zur Verfuegung, dann geht's auch auf die faule Tour ;-)
https://forum.fhem.de/index.php/topic,89744.0.html

Gruss Helmut
Titel: Antw:Logfiles Pfad
Beitrag von: betateilchen am 29 Juli 2018, 13:52:30
Zitat von: betateilchen am 28 Juli 2018, 13:13:25
Ausserdem finde ich den slash zwischen %L und einer dahinter stehenden Angabe durchaus intuitiver :)