mirror of
https://github.com/gechandesu/syslog.git
synced 2026-01-23 15:24:14 +03:00
95 lines
1.9 KiB
V
95 lines
1.9 KiB
V
module syslog
|
|
|
|
#include <syslog.h>
|
|
|
|
fn C.openlog(&char, i32, i32)
|
|
fn C.syslog(i32, &char, ...voidptr)
|
|
fn C.closelog()
|
|
|
|
/*
|
|
Values for option
|
|
*/
|
|
|
|
pub const log_cons = C.LOG_CONS
|
|
pub const log_ndelay = C.LOG_NDELAY
|
|
pub const log_nowait = C.LOG_NOWAIT
|
|
pub const log_odelay = C.LOG_ODELAY
|
|
pub const log_perror = C.LOG_PERROR
|
|
pub const log_pid = C.LOG_PID
|
|
|
|
/*
|
|
Values for facility
|
|
*/
|
|
|
|
pub const log_auth = C.LOG_AUTH
|
|
pub const log_authpriv = C.LOG_AUTHPRIV
|
|
pub const log_cron = C.LOG_CRON
|
|
pub const log_daemon = C.LOG_DAEMON
|
|
pub const log_ftp = C.LOG_FTP
|
|
pub const log_kern = C.LOG_KERN
|
|
pub const log_local0 = C.LOG_LOCAL0
|
|
pub const log_local1 = C.LOG_LOCAL1
|
|
pub const log_local2 = C.LOG_LOCAL2
|
|
pub const log_local3 = C.LOG_LOCAL3
|
|
pub const log_local4 = C.LOG_LOCAL4
|
|
pub const log_local5 = C.LOG_LOCAL5
|
|
pub const log_local6 = C.LOG_LOCAL6
|
|
pub const log_local7 = C.LOG_LOCAL7
|
|
pub const log_lpr = C.LOG_LPR
|
|
pub const log_mail = C.LOG_MAIL
|
|
pub const log_news = C.LOG_NEWS
|
|
pub const log_syslog = C.LOG_SYSLOG
|
|
pub const log_user = C.LOG_USER
|
|
pub const log_uucp = C.LOG_UUCP
|
|
|
|
/*
|
|
Values for level
|
|
*/
|
|
|
|
pub enum Level {
|
|
emerg = C.LOG_EMERG
|
|
alert = C.LOG_ALERT
|
|
crit = C.LOG_CRIT
|
|
err = C.LOG_ERR
|
|
warn = C.LOG_WARNING
|
|
notice = C.LOG_NOTICE
|
|
info = C.LOG_INFO
|
|
debug = C.LOG_DEBUG
|
|
}
|
|
|
|
@[params]
|
|
pub struct OpenParams {
|
|
pub:
|
|
ident string
|
|
option int
|
|
facility int = log_user
|
|
}
|
|
|
|
// open opens a system log for program. See also openlog(3).
|
|
pub fn open(p OpenParams) Syslog {
|
|
C.openlog(&char(p.ident.str), i32(p.option), i32(p.facility))
|
|
return Syslog{
|
|
OpenParams: p
|
|
is_opened: true
|
|
}
|
|
}
|
|
|
|
struct Syslog {
|
|
OpenParams
|
|
pub mut:
|
|
is_opened bool
|
|
}
|
|
|
|
// send sends a message of level `lvl` to system journal. See also syslog(3).
|
|
pub fn (s Syslog) send(lvl Level, msg string) {
|
|
C.syslog(i32(lvl), c'%s', &char(msg.str))
|
|
}
|
|
|
|
// close closes the system journal. See also closelog(3).
|
|
pub fn (mut s Syslog) close() {
|
|
if s.is_opened {
|
|
C.closelog()
|
|
s.is_opened = false
|
|
}
|
|
}
|