Igo*_*r K 23 sql-server logging asp-classic
我们仍在使用旧的经典ASP,并且只要用户在我们的应用程序中执行某些操作,就会想要记录.我们将编写一个通用子例程来接收我们要记录的详细信息.
我们应该使用FileSystemObject将其记录为txt文件还是将其记录到MSSQL数据库?
如果是数据库,我们是应该向现有数据库添加新表还是应该使用单独的数据库?
Stu*_*tLC 24
编辑
事后看来,更好的答案是登录BOTH文件系统(首先,立即),然后登录到集中式数据库(即使延迟).
写入文件系统的理由是,如果外部基础设施依赖性(如网络,数据库或安全问题)阻止您远程编写,至少如果您可以从Web服务器的硬盘恢复数据,则至少会有后退(类似于航空业的黑匣子).
实际上,像Splunk这样的企业日志管理器可以配置为log4net刮取本地服务器日志文件(例如,由EntLib Logging Application Block等编写),然后将它们集中在可搜索的数据库中,其中记录的数据可以被挖掘,绘制,显示在仪表板等
但从操作角度来看,您可能拥有一个Web服务器场,并假设本地文件系统和远程数据库日志记录机制都正常工作,99%的用例实际上是在日志中查找任何内容文件仍将通过中央数据库(理想情况下具有一个不错的前端系统,允许您查询,聚合甚至图形化日志数据).
原始答案
如果您有数据库,我建议将其用于审计记录而不是文件系统.
理由:
severity, action type, user, date ...)select ... from Audits where ...)和Grep 更容易Delete from Audits where = Date ...)使用现有数据库或新数据库的决定取决于 - 如果您有多个应用程序(具有自己的数据库)并且希望集中记录/审核所有应用程序中的所有操作,则集中式数据库可能有意义.
由于您说您要审核用户活动,因此在与用户表/定义相同的数据库中进行审核(如果适用)可能是有意义的.
要么有效.这取决于您的偏好.
我们有一个中央数据库,我们所有的应用都会记录他们的错误消息 我们编写的每个应用程序都在一个具有唯一ID的表中设置,错误日志表包含对AppId的外键引用.
这给我们一个监控错误的地方带来了巨大的好处.我们之前已将其作为文件系统或通过向受监控的收件箱发送电子邮件来完成,但我们能够创建一个相当不错的Web应用程序来与错误日志进行交互.我们有不同的错误级别,我们有一个"已确认"的标志字段,因此我们有一个页面,我们可以按严重程度等查看未确认的事件,