anchor.diff:        " ",
         Msg ].
   
  +-spec datetime(datetime()) -> iolist().
   datetime(now) ->
       datetime(os:timestamp());
   datetime({_,_,_} = Now) ->
  
positive.code:          ,fmt/7
           ,rfc5424/1
           ,rfc5424/8
          ]).
  
  -type syslog_msg() :: {facility(), severity(),
                         Time::iolist(), Source::iolist(),
                         Process::iolist(), Msg::iolist()}.
  
  -export_type([ syslog_msg/0 ]).
  
  -spec to_msg(syslog_msg(), iolist() | binary()) -> iolist().
  to_msg({Facility, Severity, Time, Source, Process, Msg}, Token) ->
  
negative.code: 
  nvl(undefined) -> $-;
  nvl(Val) -> Val.
  
  -spec overflow_msg(N::non_neg_integer(), datetime()) -> iolist().
  overflow_msg(N, When) ->
      logplex_syslog_utils:fmt(local5,
                               warning,
                               now,
                               "logplex",
                               "logplex",
                               "Logplex drain buffer overflowed."
                               " ~p messages lost since ~s.",
                               [N,
                                datetime(When)]
                              ).
  
  
  
  from_msg(Msg) when is_binary(Msg) ->
  