我有一个ASP.NET应用程序,我们已经编写了自己的日志记录模块。
我的问题是,将日志文件写入的标准位置在哪里?即该网站将作为匿名用户身份运行(例如IIS7上的IUSR),我需要一个我知道它有权写入的地方。
干杯,
答案 0 :(得分:6)
项目根目录下的App_Data文件夹。它不适用于Web请求;所以其他人不能窥探它。
答案 1 :(得分:1)
我建议将日志文件放在一个单独的磁盘上,但是应该会给你一点性能提升,这样你就不会尝试同时读取和写入与网站相同的磁盘。如果您无法将日志文件放在单独的磁盘上,那么我只需选择您选择的文件夹。
在任何情况下,您都必须将“网络服务”帐户的“修改”权限授予所需的文件夹。
另一方面,如果您可以访问数据库,则在那里记录信息。它比访问硬盘驱动器快得多,并且不会公开。您还可以非常轻松地从数据中进行报告。
答案 2 :(得分:0)
我无法修改文件夹的权限(特别是在虚拟目录主文件夹之外),并且还没有App_Data文件夹,所以有点犹豫不决。
所以目前我正在使用CommonApplicationData文件夹。
答案 3 :(得分:0)
我无法修改文件夹的权限(特别是在虚拟目录主文件夹之外),并且还没有App_Data文件夹,所以有点犹豫不决。
如果你有一个网站,你显然有一个文件夹。你能不能添加(非面向网络)子文件夹?看起来放置日志比将它们转储到全局共享文件夹更合适。
答案 4 :(得分:0)
您还可以登录Windows事件日志或数据库中的表。人们多久看一次事件日志?如果正在以regalr为基础进行检查,写入表格会使报告更容易,因为撤销订单并且仅显示当前时间段的最后X个事件是微不足道的。在Windows事件日志中,您还可以通过PowerShell或LogParser查询Windows事件日志。
答案 5 :(得分:0)
推送app_data是最好的主意,请记住,当发布项目时,如果选中“发布前删除所有现有文件”选项,则文件夹中的当前数据将消失。解决方法是跳过删除app_data文件夹。
进行日志记录的另一个选择是使用一些现有的框架,例如Log4net。