【问题标题】:How to prevent the logging of a failed request to favorite.ico with ServiceStack如何使用 ServiceStack 防止将失败的请求记录到 favorite.ico
【发布时间】:2015-05-13 19:53:29
【问题描述】:

这将是第 5 个以 favorite.ico 和 ServiceStack webservice 框架为中心的此类问题。我了解未找到日志记录资源背后的基本原理,并且大多数解决方法都使用内置的未找到处理程序,例如

appHost.CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => {
   if (pathInfo.StartsWith("favicon"))
      return new NotFoundHttpHandler();
});

但这仍然会向日志基础架构记录异常。有没有一种方法可以两全其美,在未找到资源时记录而不记录对 favourite.ico 的请求。我必须写代码吗?代码吓到我了:)

谢谢你, 斯蒂芬

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    日志记录在 NotFoundHttpHandler 本身中,因此为避免记录,您将返回一个不记录的自定义 HttpHandler,例如:

    appHost.CatchAllHandlers.Add((httpMethod, pathInfo, filePath) => {
       if (pathInfo.StartsWith("/favicon"))
          return new CustomActionHandler((req,res) => {
              res.StatusCode = 404;
              res.StatusDescription = "Favicon not found";
              res.EndRequest();
          });
       return null;
    });
    

    【讨论】:

    • 返回 null 而不是 NotFoundHttpHandler 不会阻止记录所有其他未知资源,对吧?
    • @Stephen 返回 null 本质上是一个 NoOp,请求继续正常进行。
    • mythz - 明白了,我们讨论的是每个请求,在这种情况下,这是完全合理的。
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 2015-09-15
    相关资源
    最近更新 更多