在哪里保存将跨平台工作的CLI应用程序日志文件?



我有一个应用程序,它将错误日志保存到运行脚本的同一目录中。这很糟糕,因为它在随机位置创建error.log文件。所以我想将文件保存到GNU/Linux上的/var/log中,我想对Windows和macOS(以及可能运行NodeJS的任何其他操作系统)也有相同的设置。

是否有一种跨平台的方式来获取日志目录?我可以在这里写日志吗?如果该目录由root所有,还可以了解如何使用该目录。或者有更好的地方保存NodeJS应用程序日志?

唯一的目录跨平台NodeJS目录是/tmp使用:

const log_filename = path.join(os.tmpdir(), 'lips.error.log');

什么是保存日志的最佳位置,用户可以查看它们?相同的目录和/tmp目录在我的选项中不是好的选项。保存日志文件的其他选项是什么?

在任何CLI应用程序中,日志文件应该跨平台保存在什么地方?

这是有趣的一部分——没有单独的目录来存储日志,因此您需要分别处理每个支持的操作系统。

  • Linux有选择,但最好采用XDG规范的方式,因为它是一个合理的标准,不会填满系统日志,并且它将使隔离应用程序日志变得简单。

  • macOS可以使用~/Library/logs文件夹

  • Windows可以使用AppData文件夹,通常是AppData/Local

最新更新