我应该将asp.net应用程序的日志文件放在哪里?
时间:2020-03-05 18:38:42 来源:igfitidea点击:
我有一个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 \
回答
I'm not in a position to modify the permissions on folders (especially outside of the virtual directory home folder), and don't already have an App_Data folder, so am a bit hesitant to go with that.
如果我们有一个网站,那么我们显然在某处有一个文件夹。我们是否可以添加(非面向网络的)子文件夹?与将日志转储到全局共享文件夹相比,这似乎是放置日志的更合适的地方。
回答
我们也可以登录Windows事件日志或者数据库中的表。人们多久查看一次事件日志?如果要定期检查它,则写到表可以使报告变回容易得多,因为颠倒顺序很简单,只显示当前时间段的最后X个事件。 Windows事件日志,我们还可以通过PowerShell或者LogParser查询Windows事件日志。