Где я должен писать файл журнала конкретного пользователя для (и быть совместимым с базовым каталогом XDG)

По умолчанию pip записывает ошибки в "~/.pip/pip.log". Pip имеет возможность изменить путь к журналу, и я хотел бы поместить файл журнала где-то помимо ~/.pip, чтобы не загромождать мой домашний каталог. Где я должен поставить его и совместимость с базовым dd-совместимым XDG?

Сейчас я рассматриваю одно из следующих:

  • $XDG_DATA_HOME (обычно $HOME/.local/share)
  • $XDG_CACHE_HOME (обычно $HOME/.cache)

Ответ 1

На данный момент это неясно.

Разное программное обеспечение, кажется, обрабатывает это по-разному (imsettings помещает это в $XDG_CACHE_HOME, ненормативную лексику в $XDG_DATA_HOME).

У Debian, однако, есть предложение, которое я могу получить (выделение мое):

Это повторяющийся запрос/жалоба (см. Это или это) в списке рассылки xdg-freedesktop, чтобы представить другой каталог для информации о состоянии, который не принадлежит ни к одной из существующих категорий (см. Также home-dir.proposal. Примеры для этой информации являются:

  • файлы истории оболочек, реплов, всего, что использует libreadline
  • лог файлы
  • состояние окон приложения при выходе
  • недавно открытые файлы
  • последний раз приложение запускалось
  • emacs: закладки, каталоги ido last, резервные копии, автосохранение файлов, автосохранение списка

Приведенный выше пример информации не является существенными данными. Однако он все равно должен сохраняться при перезагрузке системы, в отличие от данных кэша, которые пользователь мог бы рассмотреть для добавления в TMPFS. С другой стороны, данные довольно изменчивы и не имеют смысла проверяться в VCS. Файлы также не являются файлами данных, над которыми работает приложение.

Папка по умолчанию для будущей категории STATE может быть: $ HOME/.local/state

Это фактически представило бы другую переменную среды, поскольку $XDG_DATA_HOME обычно указывает на $HOME/.local/share а эта гипотетическая переменная среды ($XDG_STATE_HOME?) Будет указывать на $HOME/.local/state

Если вы действительно хотите придерживаться текущего стандарта, я бы $XDG_CACHE_HOME мои файлы журналов в $XDG_CACHE_HOME так как файлы журналов не требуются для запуска программы.