我应该将我的日志文件放在哪里用于asp.net应用程序?

时间:2008-08-09 02:03:52

标签: asp.net logging permissions

我有一个ASP.NET应用程序,我们已经编写了自己的日志记录模块。

我的问题是,将日志文件写入的标准位置在哪里?即该网站将作为匿名用户身份运行(例如IIS7上的IUSR),我需要一个我知道它有权写入的地方。

干杯,

6 个答案:

答案 0 :(得分:6)

项目根目录下的App_Data文件夹。它不适用于Web请求;所以其他人不能窥探它。

答案 1 :(得分:1)

我建议将日志文件放在一个单独的磁盘上,但是应该会给你一点性能提升,这样你就不会尝试同时读取和写入与网站相同的磁盘。如果您无法将日志文件放在单独的磁盘上,那么我只需选择您选择的文件夹。

在任何情况下,您都必须将“网络服务”帐户的“修改”权限授予所需的文件夹。

另一方面,如果您可以访问数据库,则在那里记录信息。它比访问硬盘驱动器快得多,并且不会公开。您还可以非常轻松地从数据中进行报告。

答案 2 :(得分:0)

您还可以登录Windows事件日志或数据库中的表。人们多久看一次事件日志?如果正在以regalr为基础进行检查,写入表格会使报告更容易,因为撤销订单并且仅显示当前时间段的最后X个事件是微不足道的。在Windows事件日志中,您还可以通过PowerShellLogParser查询Windows事件日志。

答案 3 :(得分:0)

我无法修改文件夹的权限(特别是在虚拟目录主文件夹之外),并且还没有App_Data文件夹,所以有点犹豫不决。

所以目前我正在使用CommonApplicationData文件夹。

  • 在Vista / Server 2008上,这是C:\ ProgramData \
  • 在XP / Server 2003上,这是C:\ Documents and Settings \ All Users \ Application Data \

答案 4 :(得分:0)

  

我无法修改文件夹的权限(特别是在虚拟目录主文件夹之外),并且还没有App_Data文件夹,所以有点犹豫不决。

如果你有一个网站,你显然有一个文件夹。你能不能添加(非面向网络)子文件夹?看起来放置日志比将它们转储到全局共享文件夹更合适。

答案 5 :(得分:0)

推送app_data是最好的主意,请记住,当发布项目时,如果选中“发布前删除所有现有文件”选项,则文件夹中的当前数据将消失。解决方法是跳过删除app_data文件夹。

进行日志记录的另一个选择是使用一些现有的框架,例如Log4net。