在 GNU Linux 中,用户特定的应用程序日志文件应该存储在哪里?

在 GNU Linux 中,用户特定的应用程序日志文件应该存储在哪里?

这个问题是关于简单用户应用程序生成的日志文件。这些文件特定于用户。因此/var/log这里没有解决方案。

我找不到有关此类文件的信息XDG 规格

默认情况下它们应该存储在哪里?

答案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 中。它可能包含:

  • 操作历史(日志、历史记录、最近使用的文件……)

  • 应用程序的当前状态,可以在重新启动时重复使用(视图、布局、打开文件、撤消历史记录等)

相关内容