# syslog for OpenOS

This package contains a syslog library, and a syslog daemon, for OpenOS. These are separated, as the daemon is optional and can be replaced at will.

## Installation

Library:

```
oppm install libsyslog
```

Daemon:

```
oppm install syslogd
```

## Usage

### Library

The syslog library only provides one function, so the library can be called. In addition, the library provides a number of pre-configured event levels:

 - syslog.emergency 
 - syslog.alert 
 - syslog.critical 
 - syslog.error 
 - syslog.warning 
 - syslog.notice 
 - syslog.info 
 - syslog.debug 

An example using syslog as both a function and a table:

```lua
local syslog = require "syslog"
syslog("message", syslog.emergency, "service name")
```

### Daemon

The syslog daemon lives in */etc/rc.d/syslogd.lua*, and as such is managed as an rc program:

```
rc syslogd enable
rc syslogd start
rc syslogd reload
```

In addition, the daemon keeps a configuration file in */etc/syslogd.cfg*. This is stored as a Lua table and may be edited in whatever way you see fit. It has the following fields and default values:

|Field		| Default value	|
| ---		| ---		|
|port		| 514		|
|relay		| false		|
|relayhost	| ""		|
|receive	| false		|
|write		| true		|
|destination	| "/dev/null"	|
|minlevel	| 6		|
|beeplevel	| -1		|
|displevel	| 2		|
|filter		| {}		|

## Technical details

The syslog library and daemon communicate via events, namely a *syslog* event. The format is as follows:

```lua
"syslog", message, level, service
```
