我的网站之一是在牛仔服务器上使用氮气。
我想记录对网页的每次访问,就像Apache使用access.log一样。
最好的方法是什么?

最佳答案

您可以使用牛仔中间件https://ninenines.eu/docs/en/cowboy/1.0/guide/middlewares/

只需创建一个简单的日志模块:

-module(app_web_log).
-behaviour(cowboy_middleware).

-export([execute/2]).

execute(Req, Env) ->
    {{Peer, _}, Req2} = cowboy_req:peer(Req),
    {Method, Req3} = cowboy_req:method(Req2),
    {Path, Req4} = cowboy_req:path(Req3),
    error_logger:info_msg("~p: [~p]: ~p ~p", [calendar:universal_time(), Peer, Method, Path]),
    {ok, Req4, Env}.


并将其添加到中间件列表中:

    {ok, _} = cowboy:start_http(http, 100, [{port, 8080}], [
            {env, [{dispatch, Dispatch}]},
            {middlewares, [cowboy_router, app_web_log, cowboy_handler]}]).

关于erlang - 记录访问网页的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27165682/

10-11 13:39