clean up logs

This commit is contained in:
connor rigby 2017-11-15 09:59:28 -08:00
parent 6a2c3ebc26
commit e7beaa5f2a
3 changed files with 18 additions and 5 deletions

View file

@ -56,7 +56,7 @@ defmodule Farmbot.BotState.Transport.AMQP do
def handle_log_events(logs, state) do
for %Farmbot.Log{} = log <- logs do
if log.module == nil or Module.split(log.module || Elixir.Logger) |> List.first == "Farmbot" do
if log.module == nil or (Module.split(log.module || Elixir.Logger) |> List.first == "Farmbot") do
location_data = Map.get(state.state_cache || %{}, :location_data, %{position: %{x: -1, y: -1, z: -1}})
meta = %{type: log.level, x: nil, y: nil, z: nil}
log_without_pos = %{created_at: log.time, meta: meta, channels: log.meta[:channels] || [], message: log.message}

View file

@ -1,37 +1,45 @@
defmodule Farmbot.Logger do
@moduledoc "Logger."
@moduledoc """
Log messages to Farmot endpoints.
"""
use GenStage
@doc "Send a debug message to log endpoints"
defmacro debug(verbosity, message, meta \\ []) do
quote bind_quoted: [verbosity: verbosity, message: message, meta: meta] do
Farmbot.Logger.dispatch_log(__ENV__, :debug, verbosity, message, meta)
end
end
@doc "Send an info message to log endpoints"
defmacro info(verbosity, message, meta \\ []) do
quote bind_quoted: [verbosity: verbosity, message: message, meta: meta] do
Farmbot.Logger.dispatch_log(__ENV__, :info, verbosity, message, meta)
end
end
@doc "Send an busy message to log endpoints"
defmacro busy(verbosity, message, meta \\ []) do
quote bind_quoted: [verbosity: verbosity, message: message, meta: meta] do
Farmbot.Logger.dispatch_log(__ENV__, :busy, verbosity, message, meta)
end
end
@doc "Send an success message to log endpoints"
defmacro success(verbosity, message, meta \\ []) do
quote bind_quoted: [verbosity: verbosity, message: message, meta: meta] do
Farmbot.Logger.dispatch_log(__ENV__, :success, verbosity, message, meta)
end
end
@doc "Send an warn message to log endpoints"
defmacro warn(verbosity, message, meta \\ []) do
quote bind_quoted: [verbosity: verbosity, message: message, meta: meta] do
Farmbot.Logger.dispatch_log(__ENV__, :warn, verbosity, message, meta)
end
end
@doc "Send an error message to log endpoints"
defmacro error(verbosity, message, meta \\ []) do
quote bind_quoted: [verbosity: verbosity, message: message, meta: meta] do
Farmbot.Logger.dispatch_log(__ENV__, :error, verbosity, message, meta)
@ -61,7 +69,12 @@ defmodule Farmbot.Logger do
end
@doc false
def dispatch_log(env, level, verbosity, message, meta) do
def dispatch_log(%Macro.Env{} = env, level, verbosity, message, meta)
when level in [:info, :debug, :busy, :warn, :success, :error]
and is_number(verbosity)
and is_binary(message)
and is_list(meta)
do
GenStage.cast(__MODULE__, {:dispatch_log, {env, level, verbosity, message, meta}})
end

View file

@ -10,8 +10,8 @@ defmodule Farmbot.Target.Network.Manager do
end
def init({interface, opts} = args) do
Logger.busy(3, "Waiting for interface up.")
unless interface in Nerves.NetworkInterface.interfaces() do
Logger.busy(3, "Waiting for interface up.")
Process.sleep(1000)
init(args)
end