【问题标题】:Async Logging for MVC3 AppMVC3 应用程序的异步日志记录
【发布时间】:2011-07-27 22:32:18
【问题描述】:

我有一个运行良好的 MVC3 应用程序。我想向数据库添加一些日志记录,但我希望该日志记录异步发生。基本上,在控制器方法的某个地方,我想调度数据库日志记录代码来完成它需要做的事情,并让它在不阻止控制器继续其快乐的方式的情况下完成它。

从控制器的角度来看,它不关心数据库写入是成功失败还是延迟。

我不认为我想为此使用AsyncController,因为我真的不关心回调。我需要什么?

【问题讨论】:

    标签: asp.net-mvc-3 c#-4.0 asynchronous task-parallel-library


    【解决方案1】:

    我建议你保持同步记录到安全的东西(比如带有 log4net 的文本文件),并有一个预定的过程来解析这些文件并将结果转储到数据库。

    这样您就可以保持两全其美 (1) 使用真实且经过尝试的方法进行日志记录,以及 (2) 获得异步过程以将结果整合到数据库中。

    【讨论】:

      【解决方案2】:

      我建议将NLog 与其Database-TargetAsyncWrapper 结合使用。也许你也可以使用AspNetBufferingWrapper

      【讨论】:

        【解决方案3】:

        您可以使用log4netAdoNetAppender。但是这个 appender 是同步的。您可以使用 ADO.NET BeginInvoke/EndInvoke 方法 implement your own asynchronous appender。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-23
          • 2015-07-14
          • 2014-10-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多