* Konwencja Nix do przechowywania dzienników użytkowników?

10

Jaka jest konwencjonalna lokalizacja dziennika dla procesów uruchamianych w imieniu użytkowników?

  • ~/.foo/logs/ - mój najlepszy wybór, ale nie super

  • /var/log/foo.uid/ - Użytkownicy niesystemowi nie mogą tutaj tworzyć katalogów, przede wszystkim potrzebują współpracy.

  • Wspólny plik w /var/log/(np. /var/log/foo.log) - nieprywatny

  • itp.

s4y
źródło

Odpowiedzi:

5

Sugerowałbym pójście /var/log/foo.uid/, ponieważ /var/log/jest to moje pierwsze miejsce podczas wyszukiwania dzienników na serwerze.

Inną opcją jest użycie pierwszego wyboru ~/.foo/logs/i utworzenie dowiązania symbolicznego pod nim /var/log.

pkhamre
źródło
Miałem na myśli ID użytkownika, a nie PID (tzn. Więcej niż jeden użytkownik może uruchamiać program w tym samym czasie i wszyscy potrzebują własnych lokalizacji dziennika).
s4y
O! Mój błąd, wciąż jest trochę za wcześnie rano w poniedziałek. Wtedy sensowne jest dodanie uidnazwy użytkownika lub użytkownika.
pkhamre
3

Chociaż /var/logjest to kanoniczne miejsce do wyszukiwania dzienników, jak wskazuje @pkhamre, nie widzę potrzeby zanieczyszczania folderu dziennikami generowanymi przez użytkownika. Wolę logować się tylko do usług ogólnosystemowych /var/log.

To powiedziawszy, jeśli aplikacja jest aplikacją GUI (działającą w X), sugerowałbym stosowanie się do specyfikacji katalogu podstawowego XDG i upuszczenie logów $XDG_DATA_HOME/foo/log/z $XDG_DATA_HOMEdomyślną wartością $HOME/.local/share. Ma to jednak jedną wadę. Musisz ciężko pracować, jeśli chcesz z jakiegoś powodu zagregować logi - w poprzednim rozwiązaniu cat /var/log/foo.*/*wystarczyłoby.

zhenech
źródło
3

Ponieważ użytkownicy /var/lognie mogą zapisywać danych, a jeśli nie chcesz przechowywać dzienników w ich odpowiednich katalogach domowych, sugerowałbym użycie tego, /var/tmp/foo.logs.uidktóry byłby zapisywalny przez użytkowników i scentralizowany.

jlliagre
źródło