/erlang-syslog

Erlang port driver for interacting with syslog via syslog(3)

Primary LanguageErlangOtherNOASSERTION

Erlang driver for syslog

This is an erlang port driver for interacting with syslog.

Installing it

./rebar3 compile

Trying it

You should have a look at syslog.h.

In another shell :

$ tail -f /var/log/syslog

Or, for mac users :

$ tail -f /var/log/system.log

In erlang shell :

$ erl
> syslog:start().
> {ok,Log} = syslog:open("Beuha", [cons, perror, pid], local0).
> syslog:log(Log, err, "Damned").
> syslog:log(Log, info, "process count: ~w", [length(processes())]).

API

syslog:open(Ident, Logopt, Facility) -> {ok, port()}

Ident is an arbitrary string
Logopt is an atom or array of atom, you can use a number if you're brave enough :

  • pid
  • cons
  • odelay
  • ndelay
  • perror

Facility is an atom :

  • kern
  • user
  • mail
  • daemon
  • auth
  • syslog
  • lpr
  • news
  • uucp
  • cron
  • authpriv
  • ftp
  • netinfo
  • remoteauth
  • install
  • ras
  • local0
  • local1
  • local2
  • local3
  • local4
  • local5
  • local6
  • local7

The open call returns either {ok, Log} where Log is a syslog handle that can be passed to subsequent log and close calls, or it will throw {error, badarg}.

syslog:log(Log, Priority, Message) -> ok

Log is a syslog handle returned from open
Priority can be a number or better, an atom :

  • emerg
  • alert
  • crit
  • err
  • warning
  • notice
  • info
  • debug

Message is a string.

syslog:log(Log, Priority, FormatMsg, FormatArgs) -> ok

Same as above, but allows for the construction of log messages similar to formatting strings via io_lib:format/2, where FormatMsg indicates the formatting instructions and FormatArgs is a list of arguments to be formatted.

syslog:close(Log) -> ok

Log is a syslog handle returned from open

BUGS

  • None known