         msg
       ]
     else
-      msg = [[IO.ANSI.format_fragment([:blue, msg], true)], IO.ANSI.reset]
+      msg = [[IO.ANSI.format_fragment([:bright, :blue, msg], true)], IO.ANSI.reset]
       [
         header,
         msg
       ]
     end
   end
+  def format(msg, metadata, colors, show_time) when is_list(msg) do
+    format(to_string(msg), metadata, colors, show_time)
+  end
+  def format(msg, metadata, colors, show_time) do
+    format(inspect(msg), metadata, colors, show_time)
+  end
 
   defp color_event(data, level, colors) do
     [IO.ANSI.format_fragment([ Map.get(colors, level, :normal), data], true), IO.ANSI.reset]
   end
 
+
   def init(_opts) do
-    {:ok, %{ colors: colors, ignore_applications: ignore_applications, ignore_levels: ignore_levels }}
+    {:ok, %{ colors: colors, ignore_applications: ignore_applications, ignore_levels: ignore_levels, last_t: 0 }}
   end
 
   def handle_event(:flush, state) do

  end
  def handle_event({level, _group_leader, {Logger, message, timestamp, metadata}}, state) do
    if (not metadata[:application] in state.ignore_applications) or (level in state.ignore_levels) do
      metadata = metadata ++ [level: level, timestamp: timestamp]
      #IO.puts(inspect metadata)
      IO.puts(
          format(message, metadata, state.colors)
        )
    end

    {:ok, state}
  end
  def handle_event({:configure, opts}, _state) do
    IO.puts("Serverboards.Logger.Console configure: #{inspect opts}")

      pid
    end

    time = if show_time do
      time
    else
      "            "
    end
    header = "#{time} [#{String.pad_trailing level, 5}] [#{rpad fileline, 30} / #{String.pad_trailing pid, 10  }] "
      |> color_event(metadata[:level], colors)
    header = ["\r", String.pad_trailing(to_string(header), 75)]

    columns = case :io.columns do
      {:ok, columns} -> columns
      _ -> 120
    end
    msg = if String.length(msg) > (columns - 75) do
      split_blocks(msg, 67, (columns - 75))
    else
      msg
    end

    if is_pid(metadata[:pid]) do
      [
