gpt4 book ai didi

asp.net-mvc-3 - 从 IIS 日志中提取不同的 Restful MVC 路由

转载 作者:行者123 更新时间:2023-12-02 03:48:37 25 4
gpt4 key购买 nike

我的商店在 IIS 7 上使用 MVC3/FUBU。我最近将一些东西投入生产,我想使用日志解析器从 IIS 日志中收集指标。我之前已经这样做过很多次了,但由于 MVC3 路由的格式为/api/person//address/,因此日志将/api/person/123/address/456 保存在 uristem 列中。

有人知道如何从 IIS 日志中获取有关特定路由的数据吗?

举个例子:像这样记录:

cs-uri-stem
/api/person/123/address/456
/api/person/121/address/33
/api/person/1555/address/5555

输出如下:总点击数 = 3

最佳答案

好吧,我最终处理这个问题的方法是创建一个 HttpModule,它将从 HttpContext 中提取路由模式并将其作为 URL_PATTERN 放入服务器变量中。一旦它进入 server_variables,IIS 高级日志记录就可以获取它并保存它。如果当前请求没有路由,它将仅使用 url 的正常本地部分(因此它将匹配日志中的 cs-uri-stem)。

现在 sql/log 解析器查询: 选择 url_pattern,count(url_pattern) from (yourlogs) 其中(开始/结束)之间的时间戳 group by url_pattern order by count(url_pattern) desc将为我返回应用程序中每个端点的点击次数。

这显然可以通过 fubu 行为来完成,但是我们有一堆经典的 asp 和 MVC3 正在运行(我知道我知道......),这将处理所有这些。另外,您显然可以使用 RaiseTraceEvent 从模块中“发布”一个字段,然后 IIS 高级日志记录可以获取该字段,但它让我在试图弄清楚它时感到不舒服,所以我只是使用我所拥有的。

我已经在各处引用 fubu 和 MVC3 发布了这个问题,但我几乎没有兴趣,这真的让我感到惊讶。如果您无法轻松确定正在使用的路线,人们如何在日志中查找信息。

https://gist.github.com/2854760

关于asp.net-mvc-3 - 从 IIS 日志中提取不同的 Restful MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com