*nix 用于存储用户日志的约定?

*nix 用于存储用户日志的约定?

代表用户运行的进程的常规日志位置是什么?

  • ~/.foo/logs/— 我的首选,但不是特别棒

  • /var/log/foo.uid/— 非系统用户无法在此创建目录,需要先配合才能创建。

  • /var/log/(例如)中的公共文件/var/log/foo.log— 非私有文件

  • ETC。

答案1

我建议选择/var/log/foo.uid/,因为/var/log/它是我在服务器上搜索日志时首先要去的地方。

另一个选择是使用您的第一选择,~/.foo/logs/并在下创建指向它的符号链接/var/log

答案2

虽然/var/log这是查找日志的规范位置,但正如@pkhamre 指出的那样,我认为没有必要用“用户”生成的日志污染文件夹。我更希望只将系统范围的服务记录到/var/log

也就是说,如果应用程序是 GUI 应用程序(在 X 中运行),我建议遵循XDG 基础目录规范并将日志放入其中,$XDG_DATA_HOME/foo/log/默认$XDG_DATA_HOME$HOME/.local/share。但这有一个缺点。如果您出于某种原因想要聚合日志,则需要更加努力——使用以前的解决方案cat /var/log/foo.*/*就足够了。

答案3

由于/var/log用户不可写入,并且如果您不想将日志保存在各自的主目录下,我建议使用/var/tmp/foo.logs.uid用户可写入且集中的目录。

相关内容