ubuntuusers.de

Wo & Wie log-Datei der eigenen Anwendung speichern?

Status: Gelöst | Ubuntu-Version: Kubuntu 14.04 (Trusty Tahr)
Antworten |

MoonKid

Anmeldungsdatum:
9. Februar 2012

Beiträge: 1379

Hab hier ne eigenen Python3-Anwendung (kein Dienst/Server, simple GUI-App mit Datenbankanbindugn) und nutze darin das logging-Paket. Per deb-File werden die Python-Scripte nach /usr/local/bin/myapp gelegt.

Also Dateiname für die logfiles hab ich /var/log/myapp.log angegeben. Dafür fehlen mir aber scheinbar die Rechte.

Nun die Frage, ob dieser Ort überhaupt für logfiles der User-Anwendungen gedacht ist? Wenn nein: Wo sonst? Wenn ja: Was wäre der saubere unixoide Weg, hier die Rechte zu erhalten? Evtl. ein entsprechends post-install Script im deb-file?

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4357

Ich würde die wohl hier ablegen:

~/.myapp/myapp.log

Ob das unixoid richtig ist, weiß ich nicht, Rechte sind halt schon passend gesetzt.

Man findet nach dem Schema auch andere Logs, z.B. in:

~/.freemind

Jack hat sich sogar hier hingeschrieben:

~/.log/jackdbus.log

In ~/.anwendungsname suchen Linuxuser (zumindest ich) sowas am ehesten.

MoonKid

(Themenstarter)

Anmeldungsdatum:
9. Februar 2012

Beiträge: 1379

verdooft schrieb:

Ob das unixoid richtig ist, weiß ich nicht

Genau das ist die Frage, die ich hier merkwürdiger Weise nicht mehr nacheditieren kann.

X-Post bei Debian.

verdooft

Anmeldungsdatum:
15. September 2012

Beiträge: 4357

Und wenn du beim 1. Start der Anwendung fragst, wo Logs gespeichert werden sollen mit der Vorgabe ~/.myapp/myapp.log ?

Wo legst du denn die Datenbank und eventuelle Einstellungen ab? Falls im Dateisystem würde ich da auch die Logdatei hinschreiben, quasi alles beisammen.

Das wäre dann wieder z.B. ~/.myapp/

Filezilla legt seine Daten, inklusive queue.sqlite3, hier ab:

~/.config/filezilla/

MoonKid

(Themenstarter)

Anmeldungsdatum:
9. Februar 2012

Beiträge: 1379

verdooft schrieb:

Und wenn du beim 1. Start der Anwendung fragst, wo Logs gespeichert werden sollen mit der Vorgabe ~/.myapp/myapp.log ?

Das ist gegen Usability-Prinzipien. Der Ort lässt sich zwar ändern, aber den User initial mit der Frage zu nerven, ist overhead.

Der von euch vorgeschlagenen Ort erscheint mir ja sinnvoll. Aber meine Frage bezieht sich auf den Standardweg. ich will wissen, welcher Ort wirklich vorgesehen ist in der unix-Welt.

Wo legst du denn die Datenbank und eventuelle Einstellungen ab?

Das ist PostgreSQL - was sich selbst um den Speicherort kümmert.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Nachdem die Anwendung im Usercontext gestartet wird, sollten die Logs auch im Homeverzeichnis des Users sein. Unter /var/log landen Systemdienste

Das_Wort

Anmeldungsdatum:
23. Dezember 2009

Beiträge: 5264

Wohnort: /dev/null

Wenn dann

~/.config/myapp/myapp.log

Dort ist der Ort! Zumd. nach freedesktop Standard.

Oder ~/.local/share/myapp/myapp.log auf jeden Fall ist ~/.myapp nicht mehr en vogue.

gvfs schreibt logs nach .local/share, chromium und supertuxkart hingegen in ~/.config.

MoonKid

(Themenstarter)

Anmeldungsdatum:
9. Februar 2012

Beiträge: 1379

Das Wort

nach freedesktop Standard.

Den gibt es seit 2000 nicht mehr bzw. wurde anderweitig integriert. Du meinst wahrscheinlich die Free Standards Group als Institution bzw. die darin enthaltende Arbeitsgruppe Linux Standard Base (LSB). Das daraus resultierende Standardpapier trägt den gleichen Namen. Weiteres für diesen Thread interesanteres Papier dieser Arbeitsgruppe dürfte der Filesystem Hierarchy Standard (FHS) sein.

Klingt jetzt so, als ob ich das alles schon wusste? Nein! Dein "freedesktop" hat mich darauf gebraucht da mal zu recherchieren.

Aktuelle FHS 3.0. Dort konnte ich zu meiner Frage bisher keine konkrete Antwort finden.

Für mich sind log-files und config-files zwei sehr verschiedenen Dinge. Ein ~/.config gibt es ja schon. Ein ~/.log wäre da für mich nur logisch.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13117

Es gibt ja auch unter /var/log spezifische Verzeichnisse mit anderen Besitzern als "root".

$ ls -ld /var/log/*/
drwxr-xr-x 2 root              root     4096 Jul  1 07:48 /var/log/apt/
drwxr-xr-x 2 root              root     4096 Jul 17 00:00 /var/log/atop/
drwxr-xr-x 2 root              root     4096 Sep 16  2014 /var/log/bootchart/
drwxr-xr-x 2 clamav            clamav   4096 Jul 15 15:32 /var/log/clamav/
drwxr-xr-x 2 root              lpadmin  4096 Jul 16 07:56 /var/log/cups/
drwxr-xr-x 2 root              root     4096 Apr 19  2014 /var/log/dist-upgrade/
drwxr-xr-x 2 root              root     4096 Okt 16  2013 /var/log/fsck/
drwxr-xr-x 3 root              root     4096 Okt 16  2013 /var/log/hp/
drwxr-xr-x 2 root              root     4096 Dez  8  2013 /var/log/installer/
drwxr-xr-x 2 root              root     4096 Jul 17 15:14 /var/log/lightdm/
drwxr-xr-x 2 root              root     4096 Dez  8  2013 /var/log/news/
drwxr-xr-x 2 ntp               ntp      4096 Okt  9  2013 /var/log/ntpstats/
drwxr-xr-x 3 root              root     4096 Jul 15 15:32 /var/log/samba/
drwx------ 2 speech-dispatcher root     4096 Aug 27  2013 /var/log/speech-dispatcher/
drwxr-xr-x 2 root              root     4096 Nov 10  2013 /var/log/sysstat/
drwxr-xr-x 2 root              root    20480 Jul  2 08:04 /var/log/unattended-upgrades/
drwxr-xr-x 2 root              root    12288 Jul 17 15:15 /var/log/upstart/ 

Das wäre also auch noch eine Option. Ich würde das aber noch mal gegen den FHS prüfen.

Antworten |