In der pgm2 Frontend Ansicht den Pfad zur Logdatei anpassen.

Begonnen von cocojambo, 08 April 2014, 10:25:09

Vorheriges Thema - Nächstes Thema

cocojambo

Ich habe den Speicherplatz der Logdatei auf einen USB Stick der Fritzbox umgeleitet in der fhem.cfg mit:

attr global logfile /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/fhem-%Y-%m.log

klicke ich jetzt auf den Punkt Logfile in der PGM2 Ansicht, bekomme ich keins angezeigt, weil es sich jetzt auf einem anderen Speicherort befindet. Wie kann ich das ändern und wo muß ich die Pfadangabe ändern. Vielen Dank
Gruß
Norbert aus köln
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

Hallo,

wenn das nicht geht oder keiner weiß wie es geht, könnte man dann nicht in den ursprünglichen log Ordner einen Link hereinsetzen der auf zu dem neuen Speicherort USB verlinkt ist?

gruß aus köln
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

betateilchen

Du kannst doch das logdir einfach mit dem globalen Attribut logdir angeben?

attr global logdir <woAuchImmer>

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

cocojambo

Hallo,
vielen dank für deine antwort, aber manche probleme verstehe ich auch nicht und deshalb denke ist dieses board ja da, mit dem hinweis unter anfängerfragen extra mit dem vermerk: jeder fängt mal an....

ich habe das so in die fhem.cfg eingebaut:
attr global logdir /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/fhem-%Y-%m.log
# attr global logfile ./log/fhem-%Y-%m.log

Beim anklicken von Logfile im Frontend kommt das:
FileLog_logWrapper: bad arguments

mache ich es so:
attr global logdir /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/
attr global logfile /log/fhem-%Y-%m.log

stürtzt Fhem ab und ist nur noch nach Neustart der Fritzbox wieder erreicbar.

oder habe ich das falsch verstanden?
gruß aus köln
norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

Hallo,
ich habe es inzwischen so gemacht:
attr global logfile /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/fhem-%Y-%m.log
attr global logdir /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/

Damit sind die Log-Files auch im Ordner auf dem USB Stick und kommen auch keine Fehlermeldungen mehr, aber wenn ich im Frontend auf Logfile klicke, ist nichts da.

Jetzt habe ich folgendes gelesen: die Globals gelten nur für neu angelegte, die bereits vorhandenen
musst Du (z.B. per Suche/Ersetzen) noch ändern!

Das soll zumErfolg geführt haben, aber was ist damit gemeint, das steht leider nicht dabei, weiß das jemand?
Gruß
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

maxritti

#5
Hallo zusammen,


zufällig habe ich das Post hier gesehen und wollte das doch mal ausprobieren, wie das mit dem umlenken der Logfiles so klappt.

In  meiner Testumgebung habe ich mal mit den Attributen "logfile" und "logdir" rumgespielt. Aber leider landen die Logfiles nicht in dem neuen Verzeichnis.

Global habe ich mal "/tmp/" als Logverzeichnis angegeben. Und ja, der User fhem, unter welchem mein FHEM Server läuft, hat auf das Verzeichnis Rechte und kann u.a. Dateien erstellen.
Dann habe ich von einem Device mal das FileLog gelöscht und neu angelegt, da ja der Hinweis um Raum steht, dass die Änderungen nur bei neuen Definitionen wirkt.

Dann wird das FileLog auch neu erstellt, aber nicht in dem Verzeichnis /tmp/ sondern es verbleibt in /opt/fhem/

Ist das ein Bug oder habe ich hier noch einen Gedankenfehler?


@Norbert

Kannst Du bitte Definitionen und Code usw. in die Code Tags packen?
Damit liest sich das ganze ein wenig leichter.

Bei den beiden Zeilen dürfte es auch klar sein, dass FHEM das nicht mitmacht.

Mit der Ersten definierst Du zwar ein Verzeichnis, wo die Logs liegen sollen, aber bei dem zweiten gibst Du explizit einen Pfad an, wo das Log landen soll.
Ich kenne mich zwar auf der Fritzbox nicht aus, zweifele aber mal an, dass es da ein Verzeichnis /log/ gibt und wenn doch, dass der Benutzer unter dem dein FHEM läuft Zugriff hat.

Zitat von: cocojambo am 08 April 2014, 17:19:05
mache ich es so:
attr global logdir /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/
attr global logfile /log/fhem-%Y-%m.log

stürtzt Fhem ab und ist nur noch nach Neustart der Fritzbox wieder erreicbar.

Definieren sollte man das dann meiner Meinung nach so:
Wobei wie oben beschrieben, dass nicht wirklich so macht, wie ich es erwartet hätte.

attr global logdir /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/
attr global logfile ./fhem-%Y-%m.log

cocojambo

@maxritti

Das mit dem /log/ war ein Schreibfehler, entschuldigung, ich hatte es aber auch anders probiert. So sieht es jetzt bei mir aus:

attr global logdir /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/
attr global logfile /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/fhem-%Y-%m.log
attr global logfile ./fhem-%Y-%m.log


geht aber immer noch nicht. Alle Logfiles sind auf dem Stick, aber wenn ich im Frontend Menue auf Logfile klicke bleibt die Anzeige weiterhin leer.
Und da wo in dem Screenshot bei dir Test drin steht, steht zb.bei mir fakelog

DEF    ./log/fhem-%Y-%m.log fakelog
NAME   Logfile
NR   23
NTFY_ORDER   50-Logfile
REGEXP   fakelog
STATE   active
TYPE   FileLog
currentlogfile   ./log/fhem-2014-04.log
logfile   ./log/fhem-%Y-%m.log


Ich hätte gerne einen Screenshot davon angehängt, aber ich habe noch nicht herausgefunden wie ich dem Punkt "Bild einfügen" ein Bild anhängen kann.
Gruß
Norbert



FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

betateilchen

Als erstes solltest Du unterscheiden lernen, dass das interne Logfile etwas anders funktioniert als die von Dir selbst angelegten Logfiles, z.B. für irgendwelche Devices.

Dann musst Du verstehen, was Du hier eigentlich tust:


attr global logfile /var/InternerSpeicher/Medion-USBFlashDrive-01/fhem/log/fhem-%Y-%m.log
attr global logfile ./fhem-%Y-%m.log


im ersten Schritt setzt Du das logfile auf /var/Interner... bla
im zweiten Schritt löscht Du die erste Einstellung indem Du sie mit ./fhem-... bla überschreibst.

Das so definierte Logfile findest Du also im fhem-Hauptverzeichnis, denn dieses wird mit "./" selektiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

@Norbert:

Screenshots anhängen geht über "Erweiterte Optionen..." und dort dann eine Datei anhängen.


@betateilchen:

Hast Du eine Idee wo es bei "meinem" Problem klemmt?
Global habe ich ja "/tmp/" als logdir definiert.
Okay, ich sehe ein, dass das allgemeine Fhem log innerhalb von Fhem verbleibt.

Allerdings mein Testlog müsste doch dann nach meinem Verständnis nach "/tmp/" verschwinden oder?

betateilchen

#9
Ein Blick in die commandref wirkt manchmal Wunder.

ZitatFHEM also replaces %L by the value of the global logdir attribute.

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

%L wird durch den Wert ersetzt, der im globalen Attribut logdir steht.

(http://up.picr.de/17918353wv.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

#10
Okay, dem stimme ich zu, dass das %L hilfreich ist und man es hätte da lesen können.

Allerdings scheint es dann ja so zu sein, dass die relativen Pfade nur funktionieren, wenn kein logdir definiert ist.
So rein intuitiv hätte ich nämlich gesagt, ich gebe mir quasi das Root-Verzeichnis mit logdir vor und alles andere geht relativ dazu.

Ist vielleicht in der Doku erwähnenswert.

betateilchen

das geht auch. Du darfst nur nicht mit einem Punkt anfangen, denn der Punkt bezeichnet nichts relatives mehr, sondern wird zur Laufzeit aus der Systemumgebung des Rechners ermittelt.

(http://up.picr.de/17918396lu.png)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

maxritti

Jetzt bin ich gerade ein wenig verwirrt:

Also ich definiere ein globales logdir mit einem Verzeichnis.

Schreibe ich vor den Dateinamen der Logdatei ein %L/ kommt die Logdatei in das definierte Verzeichnis rein.
Das mit dem Punkt davor geht nicht schreibst du.
Schreibe ich ein Slash vor den Logdateinamen, dann bekomme ich ein "Permission denied", weil das augenscheinlich das Root Verzeichnis von meinem Linux ist.
Schreibe ich gar nichts vor den Logdateinamen, so landet die Logdatei in /opt/fhem/"

Nur wie zum Geier bekomme ich die angabe relativ hin damit die in dem logdir landet?

betateilchen

das steht doch in meinem Beispiel mit dem letzten Screenshot?

logdir = /tmp

logfile = %L/fhem/....

also landet das Logfile im Verzeichnis /tmp/fhem/

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

maxritti

Okay, ich tue mich nur ein wenig schwer das %L/ dann als relativ zu bezeichnen.
Nehme das dann mal so hin.

@Norbert:

Also mal sauber Dein logdir definieren, dann die Logfiles Deiner Devices löschen und neu erstellen (per FHEM Web) und bei den Dateinamen das %L/ voranstellen.
Dann sollten die Logs sauber auf Dein USB Stick kommen und auch via Web zugreifbar sein.