Hauptmenü

Logfiles Pfad

Begonnen von tomspatz, 26 Juli 2018, 18:50:17

Vorheriges Thema - Nächstes Thema

tomspatz

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

Wernieman

Anstatt FHEM .. versuche es auf Systemebene mit Symlinks ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

betateilchen

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
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

helmut

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
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

tomspatz

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

helmut

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
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Otto123

Hi,

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

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

helmut

Danke, Otto. Ist immer gut, wenn wenn jemand so aufmerksam liest, wie Du. Das war mir entgangen.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

tomspatz

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

helmut

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
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

tomspatz

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

helmut

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
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

tomspatz

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

betateilchen

#13
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 !!
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tomspatz

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.  ;)