357 lines
11 KiB
Plaintext
357 lines
11 KiB
Plaintext
module Test_syslog =
|
|
|
|
let conf="# $FreeBSD: src/etc/syslog.conf,v 1.30.2.1 2009/08/03 08:13:06 kensmith Exp $
|
|
#
|
|
|
|
daemon.info /var/log/cvsupd.log
|
|
security.* -/var/log/security
|
|
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
|
|
uucp,news.crit /var/log/spooler
|
|
*.emerg *
|
|
daemon.!info /var/log/foo
|
|
daemon.<=info /var/log/foo
|
|
daemon.!<=info /var/log/foo
|
|
*.* @syslog.far.away
|
|
*.* @syslog.far.away:123
|
|
*.* @@syslog.far.away
|
|
*.* @@syslog.far.away:123
|
|
*.* @[2001::1]:514
|
|
*.* foo,bar
|
|
*.* |\"/usr/bin/soft arg\"
|
|
!startslip
|
|
# get that out
|
|
*.* /var/log/slip.log
|
|
!pppd,ppp
|
|
|
|
*.* /var/log/ppp.log
|
|
!+startslip
|
|
*.* /var/log/slip.log
|
|
!-startslip
|
|
*.* /var/log/slip.log
|
|
#!pppd
|
|
*.* /var/log/ppp.log
|
|
+foo.example.com
|
|
daemon.info /var/log/cvsupd.log
|
|
+foo.example.com,bar.example.com
|
|
daemon.info /var/log/cvsupd.log
|
|
#+bar.example.com
|
|
daemon.info /var/log/cvsupd.log
|
|
-foo.example.com
|
|
daemon.info /var/log/cvsupd.log
|
|
+*
|
|
daemon.info /var/log/cvsupd.log
|
|
!*
|
|
daemon.info /var/log/cvsupd.log
|
|
*.=debug;\
|
|
auth,authpriv.none;\
|
|
news.none;mail.none -/var/log/debug
|
|
# !pppd
|
|
"
|
|
|
|
test Syslog.lns get conf =
|
|
{ "#comment" = "$FreeBSD: src/etc/syslog.conf,v 1.30.2.1 2009/08/03 08:13:06 kensmith Exp $" }
|
|
{ }
|
|
{ }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "security" } { "level" = "*" } }
|
|
{ "action" { "no_sync" } { "file" = "/var/log/security" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "notice" } }
|
|
{ "selector" { "facility" = "authpriv" } { "level" = "none" } }
|
|
{ "selector" { "facility" = "kern" } { "level" = "debug" } }
|
|
{ "selector" { "facility" = "lpr" } { "level" = "info" } }
|
|
{ "selector" { "facility" = "mail" } { "level" = "crit" } }
|
|
{ "selector" { "facility" = "news" } { "level" = "err" } }
|
|
{ "action" { "file" = "/var/log/messages" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "uucp" } { "facility" = "news" } { "level" = "crit" } }
|
|
{ "action" { "file" = "/var/log/spooler" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "emerg" } }
|
|
{ "action" { "user" = "*" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "comparison" = "!" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/foo" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "comparison" = "<=" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/foo" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "comparison" = "!<=" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/foo" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "protocol" = "@" } { "hostname" = "syslog.far.away" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "protocol" = "@" } { "hostname" = "syslog.far.away" } { "port" = "123" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "protocol" = "@@" } { "hostname" = "syslog.far.away" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "protocol" = "@@" } { "hostname" = "syslog.far.away" } { "port" = "123" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "protocol" = "@" } { "hostname" = "[2001::1]" } { "port" = "514" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "user" = "foo" } { "user" = "bar" } }
|
|
}
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "program" = "\"/usr/bin/soft arg\"" } }
|
|
}
|
|
{ "program"
|
|
{ "program" = "startslip" }
|
|
{ "#comment" = "get that out" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "file" = "/var/log/slip.log" } }
|
|
}
|
|
}
|
|
{ "program"
|
|
{ "program" = "pppd" }
|
|
{ "program" = "ppp" }
|
|
{ }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "file" = "/var/log/ppp.log" } }
|
|
}
|
|
}
|
|
{ "program"
|
|
{ "program" = "startslip" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "file" = "/var/log/slip.log" } }
|
|
}
|
|
}
|
|
{ "program"
|
|
{ "reverse" }
|
|
{ "program" = "startslip" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "file" = "/var/log/slip.log" } }
|
|
}
|
|
}
|
|
{ "program"
|
|
{ "program" = "pppd" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "level" = "*" } }
|
|
{ "action" { "file" = "/var/log/ppp.log" } }
|
|
}
|
|
}
|
|
{ "hostname"
|
|
{ "hostname" = "foo.example.com" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } }
|
|
}
|
|
}
|
|
{ "hostname"
|
|
{ "hostname" = "foo.example.com" }
|
|
{ "hostname" = "bar.example.com" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } }
|
|
}
|
|
}
|
|
{ "hostname"
|
|
{ "hostname" = "bar.example.com" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } }
|
|
}
|
|
}
|
|
{ "hostname"
|
|
{ "reverse" }
|
|
{ "hostname" = "foo.example.com" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } }
|
|
}
|
|
}
|
|
{ "hostname"
|
|
{ "hostname" = "*" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } }
|
|
}
|
|
}
|
|
{ "program"
|
|
{ "program" = "*" }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "daemon" } { "level" = "info" } }
|
|
{ "action" { "file" = "/var/log/cvsupd.log" } } }
|
|
{ "entry"
|
|
{ "selector" { "facility" = "*" } { "comparison" = "=" } { "level" = "debug" } }
|
|
{ "selector" { "facility" = "auth" } { "facility" = "authpriv" } { "level" = "none" } }
|
|
{ "selector" { "facility" = "news" } { "level" = "none" } }
|
|
{ "selector" { "facility" = "mail" } { "level" = "none" } }
|
|
{ "action" { "no_sync" } { "file" = "/var/log/debug" } } }
|
|
{ "#comment" = "!pppd" }
|
|
}
|
|
|
|
(* changing file *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
set "/entry[1]/action/file" "/foo"
|
|
= "*.* /foo\n"
|
|
|
|
(* changing file to discard *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
rm "/entry[1]/action/file" ;
|
|
set "/entry[1]/action/discard" ""
|
|
= "*.* ~\n"
|
|
|
|
(* removing entry *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
rm "/entry[1]"
|
|
= ""
|
|
|
|
(* changing facility and level *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
set "/entry[1]/selector/facility" "daemon" ;
|
|
set "/entry[1]/selector/level" "info"
|
|
= "daemon.info /var\n"
|
|
|
|
(* insert a facility *)
|
|
test Syslog.lns put "daemon.* /var\n" after
|
|
insa "facility" "/entry/selector/facility" ;
|
|
set "/entry/selector/facility[2]" "mail"
|
|
= "daemon,mail.* /var\n"
|
|
|
|
(* creating an entry *)
|
|
test Syslog.lns put "" after
|
|
set "/entry/selector/facility" "daemon" ;
|
|
set "/entry/selector/level" "info" ;
|
|
set "/entry/action/file" "/var"
|
|
= "daemon.info\t/var\n"
|
|
|
|
(* inserting an entry before *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
insb "entry" "/entry" ;
|
|
set "/entry[1]/selector/facility" "daemon" ;
|
|
set "/entry[1]/selector/level" "info" ;
|
|
set "/entry[1]/action/file" "/foo"
|
|
= "daemon.info /foo\n*.*\t/var\n"
|
|
|
|
(* inserting an entry after *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
insa "entry" "/entry" ;
|
|
set "/entry[2]/selector/facility" "daemon" ;
|
|
set "/entry[2]/selector/level" "info" ;
|
|
set "/entry[2]/action/file" "/foo"
|
|
= "*.* /var\ndaemon.info\t/foo\n"
|
|
|
|
(* insert sync on a file *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
insb "no_sync" "/entry/action/file"
|
|
= "*.* -/var\n"
|
|
|
|
(* changing file to remote host *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
rm "/entry/action/file" ;
|
|
set "/entry/action/protocol" "@" ;
|
|
set "/entry/action/hostname" "far.far.away"
|
|
= "*.* @far.far.away\n"
|
|
|
|
(* changing file to remote host *)
|
|
test Syslog.lns put "*.* /var/lib\n" after
|
|
rm "/entry/action/file" ;
|
|
set "/entry/action/protocol" "@@" ;
|
|
set "/entry/action/hostname" "far.far.away"
|
|
= "*.* @@far.far.away\n"
|
|
|
|
(* changing file to * *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
rm "/entry/action/file" ;
|
|
set "/entry/action/user" "*"
|
|
= "*.* *\n"
|
|
|
|
(* changing file to users *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
rm "/entry/action/file" ;
|
|
set "/entry/action/user[1]" "john" ;
|
|
set "/entry/action/user[2]" "paul" ;
|
|
set "/entry/action/user[3]" "george" ;
|
|
set "/entry/action/user[4]" "ringo"
|
|
= "*.* john,paul,george,ringo\n"
|
|
|
|
(* changing file to program *)
|
|
test Syslog.lns put "*.* /var\n" after
|
|
rm "/entry/action/file" ;
|
|
set "/entry/action/program" "/usr/bin/foo"
|
|
= "*.* |/usr/bin/foo\n"
|
|
|
|
(* inserting a matching program *)
|
|
test Syslog.lns put "" after
|
|
insa "program" "/" ;
|
|
set "/program/program" "foo"
|
|
= "!foo\n"
|
|
|
|
(* inserting an entry to a matching program *)
|
|
test Syslog.lns put "!foo\n" after
|
|
set "/program/entry/selector/facility" "*" ;
|
|
set "/program/entry/selector/level" "*" ;
|
|
set "/program/entry/action/file" "/foo"
|
|
= "!foo\n*.*\t/foo\n"
|
|
|
|
(* inserting a matching hostname *)
|
|
test Syslog.lns put "" after
|
|
insa "hostname" "/" ;
|
|
set "/hostname/hostname" "foo.foo.away"
|
|
= "+foo.foo.away\n"
|
|
|
|
(* inserting an entry to a matching hostname *)
|
|
test Syslog.lns put "+foo.foo.away\n" after
|
|
set "/hostname/entry/selector/facility" "*" ;
|
|
set "/hostname/entry/selector/level" "*" ;
|
|
set "/hostname/entry/action/file" "/foo"
|
|
= "+foo.foo.away\n*.*\t/foo\n"
|
|
|
|
(* inserting a reverse matching hostname *)
|
|
test Syslog.lns put "" after
|
|
insa "hostname" "/" ;
|
|
set "/hostname/reverse" "" ;
|
|
set "/hostname/hostname" "foo.foo.away"
|
|
= "-foo.foo.away\n"
|
|
|
|
(* tokens can contain capital letters *)
|
|
test Syslog.lns get "LOCAL5.* -/var/log/foo.log\n" =
|
|
{ "entry"
|
|
{ "selector"
|
|
{ "facility" = "LOCAL5" }
|
|
{ "level" = "*" }
|
|
}
|
|
{ "action"
|
|
{ "no_sync" }
|
|
{ "file" = "/var/log/foo.log" }
|
|
}
|
|
}
|
|
|
|
(* test for commented out statements *)
|
|
test Syslog.lns put "" after
|
|
set "#comment" "!pppd" = "# !pppd\n"
|
|
|
|
(* allow space before comments *)
|
|
test Syslog.lns get " \t# space comment\n" =
|
|
{ "#comment" = "space comment" }
|
|
|
|
test Syslog.lns get "include /etc/syslog.d\n" =
|
|
{ "include" = "/etc/syslog.d" }
|