哪个目录最适合保存日志

  • 本文关键字:保存 日志 macos
  • 更新时间 :
  • 英文 :


我是MacOS的新手。制作完.app应用程序后,我将添加日志记录功能,但不知道应该使用哪个目录。我发现以下是保存日志文件的常见方法,但它们有何不同,哪一种最好?

  • ~/Library/Logs
  • /库/日志
  • /private/var/log

简单回答:这取决于您的软件是什么以及它记录了什么。对于一个正在创建自己日志的.app来说,~/Library/Logs无疑是最好的地方。但是,如果你正在记录应用程序的调试/跟踪信息,请使用苹果的统一日志系统。

长话短说:第一个相关的区别是,所记录的事件是否与作为开发人员的相关,还是与运行应用程序的实际用户相关。如果适用于您,请使用苹果的统一日志记录。

下一个相关的区别是日志是与整个系统相关,还是仅与运行软件的单个用户相关。您可能将macOS用作单用户操作系统,但它的组织方式使多个用户可以共享同一台计算机。所以问问自己:这个日志应该对计算机上的所有用户(或者可能只是管理员(可见,还是只对实际使用该软件的用户可见?如果每个用户都应该只看到自己的日志历史记录,那么它显然属于用户的主文件夹,所以~/Library/Logs是正确的位置。

一个相关的问题是,普通用户没有权限写入/Library/Logs和/var/log(又名/private/var/log(,因此以普通用户身份运行的应用程序不能登录到这些地方。

最后一个区别是您的软件是Mac版还是Unix版。macOS有两层,Unix层和在此之上构建的Mac特定层/Library/Logs是非用户特定日志的Mac风格的地方,/var/log是类似的Unix风格的地方。这样说吧:如果你的程序安装到/Applications中,你就是Mac世界的一部分,并且会使用/Library/Logs作为系统范围的日志。另一方面,如果您的程序安装到/usr/local或/opt中,那么您就是Unix世界的一部分,应该使用/var/log。

因此,总结一下:

  • 用于面向开发人员的调试和跟踪信息的统一日志记录系统
  • ~/Library/来自非系统软件的面向用户的信息日志
  • /用于Mac ish系统范围事件日志记录的库/日志
  • /用于Unix ish系统范围事件日志的var/log

BTW,统一的日志信息实际上存储在/var/log中。但不要以这种方式访问它——使用API。

最新更新