anchor.diff:  log(Level, Pid, Format, Args) ->
       Timestamp = lager_util:format_time(),
       Msg = [["[", atom_to_list(Level), "] "], io_lib:format("~p ", [Pid]),
  -        string:strip(lists:flatten(io_lib:format(Format, Args)), right, $\n)],
  +        string_reduce(lager_trunc_io:format(Format, Args, 4096))],
       safe_notify(lager_util:level_to_num(Level), Timestamp, Msg).
   
   %% @doc Set the loglevel for a particular backend.
  
positive.code:     Timestamp = lager_util:format_time(Time),
      Msg = [["[", atom_to_list(Level), "] "],
          io_lib:format("~p@~p:~p:~p ", [Pid, Module, Function, Line]),
          string:strip(lists:flatten(io_lib:format(Format, Args)), right, $\n)],
      safe_notify(lager_util:level_to_num(Level), Timestamp, Msg).
  
  %% @doc Manually log a message into lager without using the parse transform.
  
negative.code:     ok | {error, lager_not_running}.
  log(Level, Module, Function, Line, Pid, Time, Message) ->
      Timestamp = lager_util:format_time(Time),
      Msg = [["[", atom_to_list(Level), "] "],
             io_lib:format("~p@~p:~p:~p ", [Pid, Module, Function, Line]),
             string_reduce(Message)],
      safe_notify(lager_util:level_to_num(Level), Timestamp, Msg).
  
  %% @private
  