Current section
Files
Jump to
Current section
Files
lib/microscope/logger.ex
defmodule Microscope.Logger do
@moduledoc "A callback module that logs HTTP requests to the stdout."
@behaviour Microscope.Callback
@spec on_request() :: no_return
def on_request(), do: nil
@spec on_200(String.t, String.t, String.t) :: no_return
def on_200(from, method, path), do: log 200, from, method, path
@spec on_404(String.t, String.t, String.t) :: no_return
def on_404(from, method, path), do: log 404, from, method, path
@spec log(non_neg_integer, String.t, String.t, String.t) :: :ok
defp log(status, from, method, path) do
message =
"#{color_from_status(status)}[#{status}]\e[0m "
<> "#{from} #{method} "
<> "\e[1m#{path}\e[0m"
IO.puts message
end
@spec color_from_status(non_neg_integer) :: String.t
defp color_from_status(200), do: "\e[32m"
defp color_from_status(404), do: "\e[31m"
end