Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
108 lines (79 sloc) 1.81 KB

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