记录网页访问权限的最佳方式

Mae*_*eln 2 erlang nitrogen cowboy

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

P_A*_*P_A 8

你可以使用牛仔中间件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}.
Run Code Online (Sandbox Code Playgroud)

并将其添加到middlwares列表中:

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