Current section
Files
Jump to
Current section
Files
lib/plug/accesslog/writer.ex
defmodule Plug.AccessLog.Writer do
@moduledoc """
Log message writer.
"""
use GenEvent
alias Plug.AccessLog.Logfiles
@doc """
Notifies the writer to write a log message.
"""
@spec notify(String.t, String.t) :: :ok
def notify(message, logfile) do
GenEvent.notify(__MODULE__, { :log, message, logfile })
end
# GenEvent callbacks
def handle_event({ :log, message, logfile }, state) do
{ write(message, logfile), state }
end
# Utility methods
defp write(message, logfile) do
case Logfiles.get(logfile) do
nil -> :ok
io -> IO.write(io, message <> "\n")
end
end
end