在Windows上存储应用程序日志文件的位置

时间:2009-10-15 14:57:22

标签: windows logging

将应用程序的调试日志文件放在Windows用户环境中的最佳“标准”位置在哪里?

在这种特殊情况下,它是一个运行一次且可能出错的应用程序。它将由系统管理员类型运行,他们可能需要在运行应用程序后检查日志。每次运行应用程序时,都会创建一个新的日志文件。

到目前为止已经浮动的选项包括:

  1. 程序目录
  2. 用户的桌面
  3. 用户的本地应用程序数据目录。
  4. 我最喜欢,但我想知道SO的共识是什么。

    注意:这与this question类似,但我们正在处理的应用程序只能由一个用户运行一次。

7 个答案:

答案 0 :(得分:15)

Application Data目录似乎是一个完美的地方,但它是一个几乎看不见的区域。您需要为用户提供一种简便的方法。

让您的安装脚本在程序的“应用程序数据”区域中创建一个“日志”文件夹,并在“开始”菜单中包含指向该文件夹的链接。

答案 1 :(得分:4)

日志的“标准”位置是AppData目录。但是,真正取决于您想要存储它们的位置。由于他们是管理员(高级用户),因此将日志存储在与正在运行的应用程序相同的目录中应该没有问题。即使在用户的MyDocuments中也会是一个很好的呼喊。

答案 2 :(得分:4)

在我工作的组织中,我们使用(%TEMP%或%TMP%)\ CompanyOrProductName \ Logs目录 如果日志数量众多或庞大,使用%APPDATA%可能会对漫游配置文件造成问题:它会减慢登录过程...

答案 3 :(得分:3)

1.程序目录< - 不好。理想情况下,您只对此文件夹拥有RX权限。

2.用户的桌面< - 技术上可以完成,但我不喜欢这个想法。污染桌面......作为用户,我不喜欢它。

3.用户的本地Application Data目录。 < - 更好

我的偏好是程序目录下的一个子目录(具有清晰的名称,如“DebugLog”或类似的东西)。该子目录的权限应该允许创建和写入文件(“更改”会很好)

答案 4 :(得分:2)

如果 EXPECT 出错,请将其放在用户的本地Application Data目录中。

如果你不这样做,只想记录,我可能会考虑真正使用临时目录。这样做的原因很简单。如果应用程序仅运行一次,您将在Application Data目录中留下垃圾,否则将无需再次使用。在临界状态下,你至少要拥有它将在以后清理它的机会。

顺便说一下:恕我直言,最好不要创建日志AS A FILE(记录到内存),直到出现问题。然后,您仍然可以提供一个对话框,用户可以在其中选择保存日志的位置。

答案 5 :(得分:1)

Windows临时文件夹

答案 6 :(得分:0)

假设您要在相当长的时间内保留日志文件并且打算使用它们,请阅读我将日志文件放在用户本地应用程序数据文件夹的子文件夹中的方法,可通过键入以下内容从Windows资源管理器访问%localappdata%

如果它们是临时日志文件,仅在系统诊断时使用,则应将它们放在可从Windows资源管理器%temp%访问的临时文件夹中。