答案1
XDG 规范对日志文件应该存放在哪里没有明确说明。最适合的似乎$XDG_CACHE_HOME
是“用户特定的非必要数据文件”。
查看我的本地系统,所有$XDG_*_HOME
位置下都有应用程序日志:
$ ls .cache/*/*log
.cache/shotwell/shotwell.log
.cache/simple-scan/simple-scan.log
.cache/virt-manager/virt-clone.log
$ ls .local/share/*/*log
.local/share/FasterThanLight/FTL.log
.local/share/xorg/Xorg.0.log
$ ls .config/*/*log
.config/VirtualBox/selectorwindow.log
.config/VirtualBox/VBoxSVC.log
使用$XDG_CONFIG_HOME
似乎是错误的,但可以看到使用(更有可能在重启后仍然存在)$XDG_DATA_HOME
专门用于像 Xorg 这样的应用程序,这些应用程序可能会严重损坏而需要重新启动系统,并且希望能够在这些情况下保留错误日志。
答案2
它们属于$XDG_STATE_HOME
或(作为后备)~/.local/state
。
当这个问题被问到时,然后是当前规范没有$XDG_STATE_HOME
。它于 2021 年由版本 0.8。
从目前的规范来看:
$XDG_STATE_HOME 定义应存储用户特定状态文件的基本目录。如果 $XDG_STATE_HOME 未设置或为空,则应使用默认值 $HOME/.local/state。
$XDG_STATE_HOME 包含应在(应用程序)重新启动之间保留的状态数据,但这些数据对用户来说并不重要或不够便携,因此不应存储在 $XDG_DATA_HOME 中。它可能包含:
操作历史(日志、历史记录、最近使用的文件……)
应用程序的当前状态,可以在重新启动时重复使用(视图、布局、打开文件、撤消历史记录等)