登录托管环境
本文关键字:环境 登录 | 更新日期: 2023-09-27 18:24:08
我有一个网站运行在(廉价的)托管公司解决方案上。数据库和web服务器就在那里。我想记录在我的应用程序上发生的活动,向下到各个层(也许没有那么多演示)。因此,已经拨打了服务电话。。。。业务函数已在BL中运行…数据库调用已执行。。。。发现了一个异常。
这些层都是分开的。所以,我想登录数据库是不明智的,因为我需要从所有层访问数据库。例如,用户选择一个产品。在服务方法(GetProductById)上,我要记录它的执行情况。然后该方法调用BL中的GetProductById。我也想登录到那里。。。最后是数据访问器中的GetProductById。我需要所有层的数据库连接。
我想添加一个公开一个方法(Log)的小类。并从每一层引用该DLL。这个DLL接收一条消息,并有自己到数据库的连接,只需要一个方法——写行。但是,这会不会开销太大?每个"日志"事件都是打开数据库、写入、关闭。那有点重吗?DB功能强大。。。但一个调用可能会导致3到30个"日志"事件(不过,这将帮助我发现代码的问题)。
独立记录器类很有吸引力,因为如果我愿意,我可以将其更改为文件记录器。但更喜欢查询表的功能,例如"ErrorLevel"。或者什么的。
我唯一的问题是开销。这没什么好担心的吗?
日志记录是一个跨领域的问题,因此从"层"的角度来看,它实际上没有意义。不要担心它是否会进入数据库。
我建议使用已经创建的日志库,而不是创建自己的日志库。由于它已经解决了您担心的所有这些问题(如何从中获得最佳性能,而不占用大量资源等)。NLog是一个非常好的版本,它专门为ASP.NET网站提供了支持,在其他层也能很好地工作。它有文件或数据库写入的解决方案。