Current section

Files

Jump to
nerves_runtime lib nerves_runtime output_logger.ex
Raw

lib/nerves_runtime/output_logger.ex

defmodule Nerves.Runtime.OutputLogger do
defstruct [:level]
def new(level) do
%__MODULE__{level: level}
end
defimpl Collectable do
def into(%{level: level} = stream) do
{:ok, log(stream, level)}
end
def log(stream, level) do
fn
:ok, {:cont, logs} ->
logs
|> String.split("\n")
|> Enum.each(&Logger.bare_log(level, fn -> &1 end))
:ok, _ ->
stream
end
end
end
end