什么是代表用户运行的进程的传统日志位置?
~/.foo/logs/ – 我的首选,但不是超棒的
/var/log/foo.uid/ – 非系统用户不能在这里创build目录,首先需要合作才能创build。
/var/log/ (例如/var/log/foo.log )中的常见文件 – 非私有文件
等等
我build议去/var/log/foo.uid/ ,因为/var/log/是我在search服务器上的日志时第一个去的地方。
另一个select是使用你的第一个选项~/.foo/logs/ ,并在/var/log下创build一个符号链接。
虽然/var/log是查找/var/log的规范地方,正如@pkhamre指出的,我不认为需要用“用户”生成的日志来污染文件夹。 我宁愿只有系统范围的服务login到/var/log 。
也就是说,如果应用程序是一个GUI应用程序(在X中运行),我会build议遵循XDG基本目录规范 ,并将日志放到$XDG_DATA_HOME/foo/log/ , $XDG_DATA_HOME默认为$HOME/.local/share 。 但是这有一个缺点。 如果由于某种原因需要聚合日志,则需要更加努力,而以前的解决scheme只需使用cat /var/log/foo.*/*就足够了。
由于/var/log不能被用户写入,并且如果你不想将日志保存在它们各自的主目录下,我会build议使用/var/tmp/foo.logs.uid ,这个命令既可以被用户写入,也可以被集中。