WinForm应用程序应该在哪里保留其日志?

Sag*_*tay 5 windows logging desktop-application winforms

我正在开发一个WinForm应用程序,它允许使用"项目"(将应用程序视为Visual Studio,将项目视为VS Solutions).

我的问题是 - 应用程序应该在哪里保留其日志文件?

一些要求包括:

  • 该应用程序可能无法以管理员身份运行(这样在节省的%ProgramFiles%的安装文件夹是不是一个好的选择)
  • 最终用户可以访问日志(用于审阅或发送给支持团队).(这意味着很难找到的文件夹,比如%APPDATA%\公司\应用\版本\项目名......是不是一个好的解决方案)
  • 即使没有打开项目,应用程序也可能生成日志(因此,只有在有项目时才保存项目文件夹中的日志,但不是最终解决方案).

我正在考虑在安装应用程序时创建一个"工作文件夹" - 类似于C:\ Application \,然后将日志保存在子文件夹中,例如%WorkingFolder%\ Logs\ProjectName

感谢您的投入.

Mic*_*ins 3

如果它们特定于当前正在运行的用户,则用户目录中的某个位置实际上是存储它们的正确位置。

有些程序在用户目录的顶层(文档和桌面旁边)创建文件夹,其他程序则在文档中创建文件夹。

如果用户没有根目录的写入权限,则在 C:\ 中创建它可能会导致问题。您几乎可以保证用户拥有对主目录的写访问权限。

另一个选项是查找环境变量,如果设置了该变量,则使用该值作为位置,如果没有默认为用户的主目录。