我应该将 ASP.NET 应用程序的日志文件放在哪里?
-
08-06-2019 - |
题
我有一个 ASP.NET 应用程序,我们为其编写了自己的日志记录模块。
我的问题是,写入日志文件的标准位置在哪里?IE。该网站将以匿名用户身份运行(例如IIS7 上的 IUSR),我需要一个我知道它有权写入的地方。
干杯,
解决方案
项目根目录下的 App_Data 文件夹。它不服务于网络请求;所以其他人无法窥探它。
其他提示
我建议将日志文件放在单独的磁盘上,不过应该会给您带来一点性能提升,这样您就不会尝试读取和写入与网站相同的磁盘。如果您无法将日志文件放在单独的磁盘上,那么我只需选择您选择的文件夹即可。
无论如何,您都必须授予“网络服务”帐户对所需文件夹的“修改”权限。
另一方面,如果您有权访问数据库,则将信息记录在那里。它比访问硬盘要快得多,并且不会公开。您还可以轻松地根据数据进行报告。
我无法修改文件夹的权限(特别是在虚拟目录主文件夹之外),并且还没有 App_Data 文件夹,所以我对此有点犹豫。
因此,目前我将使用 CommonApplicationData 文件夹。
- 在 Vista/Server 2008 上,这是 C:\ProgramData\
- 在 XP/Server 2003 上,这是 C:\Documents and Settings\All Users\Application Data\
我无法修改文件夹的权限(特别是在虚拟目录主文件夹之外),并且还没有 App_Data 文件夹,所以我对此有点犹豫。
如果您有一个网站,那么您显然在某个地方有一个文件夹。您不能添加(非面向网络的)子文件夹吗?看起来这比将日志转储到全局共享文件夹中更适合放置日志。
推送app_data是最好的主意,请记住,在发布项目时,如果勾选“发布前删除所有现有文件”选项,则文件夹中的当前数据将消失。解决方法是跳过删除 app_data 文件夹。
进行日志记录的另一个选择是使用一些现有的框架,例如 Log4net。
不隶属于 StackOverflow