如何解决帮助我找到适用于asp.net应用程序的最小摩擦记录解决方案
|| 出于争论的原因,让我们说,我有30个需要具有日志记录框架的asp.net Web应用程序(以及站点,blerg)。我当前的解决方案是使用企业库日志记录。在站点上进行此操作涉及以下步骤: 添加对两个程序集的引用(EL Logging和Common) 将代码添加到Global.asax.cs中以进行通用的未处理的错误捕获 复制到enterpriseLibrary.config中,从已经具有日志记录的另一个应用程序复制 在FileConfigurationSource.cs中复制(允许您覆盖对enterpriseLibrary.config的硬编码路径的要求) 将FileConfigurationSource.cs中的命名空间更改为新项目 从另一个项目中复制特定于EL的web.config部分(2个部分) 在新项目中更改web.config中用于EL的名称空间 测试并确保其正常工作(通常通过使数据库脱机) 所有这些就是我正在谈论的摩擦。如果您问我,这很违反DRY,尤其是在所有enterpriseLibrary.config设置中。理想情况下,添加日志记录将是一个两步过程-这将有助于我在整个团队中采用它。 我想知道是否有.net的日志记录解决方案没有所有这些重复项?我可以找到的所有这些对象(log4net,nlog和EL Logging)似乎都使用此“每个应用程序都具有自己的配置并具有很多重复”的模式。也许我想念一些东西。 实际上,我们每个应用程序都将拥有一个与其他应用程序99%相同的日志记录解决方案。它们在存储日志的位置以及应用程序的调用方面会有所不同。有没有一种方法可以使用三大日志记录解决方案之一,让您在计算机级别或更集中的位置设置日志记录行为?我意识到集中式日志记录配置存在弊端。 同样重要的是:必须能够即时更改日志记录级别(在web.config中不存储日志记录配置,从而导致应用程序重启),并且日志记录必须可作为部署的一部分进行配置(不希望发送电子邮件)测试版服务器上的严重错误)。这两个使使用web.config转换变得困难,因为在不是Web.config的构建的一部分上在.config上运行转换非常困难。解决方法
对于与您类似的问题,我找到了完美的解决方案。
我有十个控制台应用程序,两个ASP .NET网站和三个SharePoint Webparts记录到一个目录,日志按日期,应用程序名称等分隔。该解决方案非常易于配置和灵活,并且可以即时更改配置。
所有这些荣耀都由NLog赋予了生命,它允许从特定于应用程序的配置文件中包含单个配置文件。
更具体地说,在我们的情况下,每个项目都包含单独的NLog配置,其内容为:
<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<nlog xmlns=\"http://www.nlog-project.org/schemas/NLog.xsd\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
autoReload=\"true\">
<include file=\"PATH TO THE SHARED CONFIG\" /> <!-- change this line -->
</nlog>
对于Web应用程序,可以从以下位置读取单个NLog配置:
标准Web应用程序文件web.config
web.nlog
与web.config
位于同一目录
应用程序目录中的“ 4”
NLog.dll
所在目录中的NLog.dll.nlog
共享的配置文件可以放在ASP .NET进程可以读取的任何位置,并且带有“ 7”字样,可以即时修改。在我们的案例中,它为日志消息定义了不同的目标,例如电子邮件,不同目录中的日志文件等等。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。