Erlang *性能记录器中的webmachine访问帖子正文

Erlang *性能记录器中的webmachine访问帖子正文,erlang,mochiweb,webmachine,Erlang,Mochiweb,Webmachine,正在尝试拦截webmachine API上的所有请求。我复制了一份webmachine\u perf\u logger.erl,并更改为发布{verb,resource,module} 对于帖子,我也对BODY感兴趣。因为webmachine\u decision\u core.erl中的日志部分是在不同的过程中触发的 respond(Code) -> .... spawn(fun() -> do_log(LogData) end), 我不知道如何才能访问

正在尝试拦截webmachine API上的所有请求。我复制了一份webmachine\u perf\u logger.erl,并更改为发布{verb,resource,module}

对于帖子,我也对BODY感兴趣。因为webmachine\u decision\u core.erl中的日志部分是在不同的过程中触发的

 respond(Code) ->
      ....
      spawn(fun() -> do_log(LogData) end),
我不知道如何才能访问it


是否有任何方法可以访问它或其他替代方法,我们对此表示感谢。

您是否尝试过
finish\u请求
resource函数()?与任何其他资源函数一样,它接收请求数据和上下文。你可以这样做:

finish_request(ReqData, Context) ->
    do_log(extract_log_data(ReqData, Context)),
    {true, ReqData, Context}.

这将记录您从每个请求的请求数据和上下文中提取的任何内容。请注意,崩溃的请求可能不会调用
finish\u请求

,这仅适用于每个*\u资源。我想要的是交叉关注。对于finish_请求,如果添加了一个新资源而没有实现finish_请求,那么我将失去对它的监视。我脑子里只知道一个牛仔式的解决办法;)话虽如此。。您应该看看
chef\u wm
如何使用
finish\u request
。了解其他资源的使用情况以及如何使用
chef\u wm\u base
。Opscode在
erchef
实现方面做了一项惊人的工作。听起来这很有趣