我有一个MVC3网络应用程序。我使用Ninject 2进行依赖注入,使用log4net进行Ninject日志记录扩展进行日志记录
我的客户希望能够“跟踪”生产中的用户会话以解决可能出现的问题。我们想要实现它的方式是动态更改该用户的日志级别,例如通过存储cookie,这样当Ninject.logging提供记录器实例时,它知道提供一个日志实例,其级别设置为Debug。
我没有找到任何方法,通过使用Ninject日志记录或普通的log4net
有什么建议吗?
答案 0 :(得分:1)
我认为您可以按照in this other question所述以编程方式强制执行该级别。它并不是完全提供新的logegr实例,而是改变当前的实例,但我认为它可以解决您的问题。
答案 1 :(得分:1)
我们最终以这种方式修改了ninject.extension.logging:
- 在LoggerFactoryBase中,我们修改了GetLogger(IContext context)
方法以从HttpContext中检索cookie
- 如果设置了此值,我们将使用“跟踪”获取或创建记录器。 +类型名称
- 在log4net配置中,我们有一个名为“Tracing”的记录器设置为Debug