跟踪调试

Keeping track of debug

我有一个解决方案,用户可以使用标志 DEBUG 向 WebApi2 发送请求。如果设置了标志,WebApi2 将记录调试语句(使用 log4net)。

如何跟踪代码中的标志?我不喜欢我必须将它传递给每个函数来决定是否应该记录调试语句的事实。有没有办法处理 log4net 或 WebApi2?

像会话这样的东西会很好,但这与 RESTful 设计原则背道而驰。想知道有没有优雅的解决方法

为什么要客户端控制服务器上的日志记录级别? log4net 通常 通过 web.config 连接,因此您可以在服务器端动态更改日志记录级别。

话虽如此,您真的需要那种粒度级别吗?如果数据库中保存了某种用户配置文件,那可能就是存储它的地方。

为了严格回答您的问题,更优雅的解决方案可能是使用 custom header

我使用 ThreadContext.Stacks["Debug"].Push("True") 解决了我的问题。