2010-03-02 62 views
0

简称:什么是Windows服务将日志文件转储到最合适的文件夹?转储Windows服务日志文件的文件夹

详细

我有产生一个低技术的最终用户可能会有兴趣看(一台电脑和一个生产线监控传感器之间的实际通信)日志文件,一个窗口服务。

计算机是一台独立的专用计算机,充当数据采集服务器,它具有监视器并可供最终用户访问,但除非出现问题,否则不会触及。

什么是最好的(最合适的)地方(文件夹)输出这些日志文件?

我的考虑是:

  1. 易于配置(如果我有本地服务帐户添加到该文件夹​​给访问)。
  2. 便于终端用户访问(再次:他们不应该需要,但偶尔他们可能会想要)。

编辑:它创建了大约10到1Mb的滚动大小的文件。尺寸没有问题,所以不需要压缩和清理。

回答

3

我的首选是使用所有用户文件夹结构。通过在那里创建一个与您的服务应用程序名称相同的文件夹,很容易看出内容来自哪里,您可以在不损害Program Files文件夹的情况下向其授予访问权限,并且当您卸载或升级您的应用程序时,您将不会离开程序文件中的'孤立'文件夹无法删除,因为安装程序不知道它必须删除某些日志文件。

+0

好点。目前我在做: Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+“/我的服务/日志” – 2010-03-02 18:55:41

1

那么,我会说你的服务安装到,在/Logs/文件夹。然后添加功能以在稍后阶段压缩这些文件。

通过这样做,您不会将您的应用程序数据从实际运行的应用程序中分离出来。例如,将其保存到C:\LogDumps\并没有说明什么程序首先创建了这些文件,这将是一个噩梦来维护。

+0

如果我在Program Files目录中安装服务,我将不愿意给'本地服务'写入'程序文件'中的任何东西。 C:\ LogDumps可能由于同样的原因而不好,因为我希望服务能够在缺失的情况下创建最低级别的文件夹。 – 2010-03-02 18:39:42

+0

您没有授予程序文件的权限。您正在为程序文件中的文件夹内的文件夹授予权限。如果您只保留日志文件夹的权限,则只能访问日志文件夹。 – 2010-03-02 18:41:30

+0

正如我所说的“我不愿意给'本地服务'写入'程序文件'中的任何内容”,我的理解是“应用程序数据”目录的意思 - 避免程序必须写入程序文件,因此Program Files仅用于程序安装和安装级别的配置。 – 2010-03-02 18:43:03

1

我认为最直观的登录位置是服务安装文件夹中的子文件夹“日志”。例如,如果服务在这里安装:

C:\ Program Files文件\我的公司\我的服务\

把日志的位置:

C:\ Program Files文件\我的公司\我的服务\ logs \

当应用程序登录到“文档和设置”或“我的文档”区域时,我不喜欢它 - 我不喜欢在应该记录的文件夹中创建垃圾成为我的文档。

+0

与我所说的相同;) – 2010-03-02 18:38:55

+0

某些应用程序写入“文档和设置”区域的原因在于,根据正在运行的服务进程的所有者,权限的限制较少。 – Joe 2010-03-02 18:40:42

+0

我的文档不是一个好的选项,因为用户“Bob”将具有与用户“本地服务”(女巫windows服务正在运行的帐户)不同的“我的文档”位置。 – 2010-03-02 18:51:38

相关问题