* nix соглашение для хранения пользовательских журналов?

10

Каково обычное расположение журнала для процессов, которые выполняются от имени пользователей?

  • ~/.foo/logs/ - мой лучший выбор, но не супер круто

  • /var/log/foo.uid/ - Несистемные пользователи не могут создавать каталоги здесь, для начала необходимо сотрудничество.

  • Общий файл в /var/log/(например /var/log/foo.log) - не приватный

  • и т.п.

s4y
источник

Ответы:

5

Я бы предложил пойти /var/log/foo.uid/, потому что /var/log/это мое первое место при поиске журналов на сервере.

Другой вариант - использовать ваш первый выбор ~/.foo/logs/и создать символическую ссылку на него в /var/log.

pkhamre
источник
Я действительно имел в виду ID пользователя, а не PID (то есть, более чем один пользователь может одновременно запускать программу, и все они должны иметь свои собственные местоположения журнала).
s4y
Ой! Моя ошибка, все еще слишком рано утром в понедельник. Тогда имеет смысл добавить uidили имя пользователя.
Пхамре
3

Хотя /var/logэто каноническое место для поиска логов, как указывает @pkhamre, я не вижу необходимости загрязнять папку сгенерированными «пользователем» журналами. Я бы предпочел только общесистемные сервисы для входа в систему /var/log.

Тем не менее, если приложение является приложением с графическим интерфейсом (работает в X), я бы предложил следовать спецификации XDG Base Directory и сбросить журналы $XDG_DATA_HOME/foo/log/со значением по $XDG_DATA_HOMEумолчанию $HOME/.local/share. Это имеет один недостаток, хотя. Вам нужно работать усерднее, если по какой-то причине вы хотите объединить журналы - с предыдущим решением было cat /var/log/foo.*/*бы достаточно.

zhenech
источник
3

Так /var/logкак пользователи недоступны для записи, и если вы не хотите хранить журналы под соответствующими домашними каталогами, я бы предложил использовать те, /var/tmp/foo.logs.uidкоторые будут доступны для записи пользователям и централизованы.

jlliagre
источник