这个问题是关于简单用户应用程序生成的日志文件。这些文件特定于用户。因为这/var/log不是这里的解决方案。
我在XDG 规范中找不到有关此类文件的信息。
默认情况下它们应该存储在哪里?
它们属于$XDG_STATE_HOMEor (作为后备)~/.local/state。
当问这个问题时,当时的规范没有$XDG_STATE_HOME. 它于 2021 年通过版本 0.8引入。
从当前规范来看:
\n\n\n$XDG_STATE_HOME 定义应存储用户特定状态文件的相对基目录。如果 $XDG_STATE_HOME 未设置或为空,则应使用等于 $HOME/.local/state 的默认值。
\n$XDG_STATE_HOME 包含应在(应用程序)重新启动之间保留的状态数据,但这对于用户而言并不重要或可移植性不够,因此应将其存储在 $XDG_DATA_HOME 中。它可能包含:
\n\n
\n- \n
操作历史记录(日志、历史记录、最近使用的文件、\xe2\x80\xa6)
\n- \n
可以在重新启动时重用的应用程序的当前状态(视图、布局、打开文件、撤消历史记录、\xe2\x80\xa6)
\n
小智 6
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
Run Code Online (Sandbox Code Playgroud)
使用$XDG_CONFIG_HOME似乎是错误的,但可以看到专门针对像 Xorg 这样的应用程序使用(更有可能通过重新启动持续存在),$XDG_DATA_HOME这些应用程序可能会严重破坏,需要重新启动系统,并且希望能够在这些情况下保留错误日志。