1package srslog
2
3import (
4	"errors"
5)
6
7// Priority is a combination of the syslog facility and
8// severity. For example, LOG_ALERT | LOG_FTP sends an alert severity
9// message from the FTP facility. The default severity is LOG_EMERG;
10// the default facility is LOG_KERN.
11type Priority int
12
13const severityMask = 0x07
14const facilityMask = 0xf8
15
16const (
17	// Severity.
18
19	// From /usr/include/sys/syslog.h.
20	// These are the same on Linux, BSD, and OS X.
21	LOG_EMERG Priority = iota
22	LOG_ALERT
23	LOG_CRIT
24	LOG_ERR
25	LOG_WARNING
26	LOG_NOTICE
27	LOG_INFO
28	LOG_DEBUG
29)
30
31const (
32	// Facility.
33
34	// From /usr/include/sys/syslog.h.
35	// These are the same up to LOG_FTP on Linux, BSD, and OS X.
36	LOG_KERN Priority = iota << 3
37	LOG_USER
38	LOG_MAIL
39	LOG_DAEMON
40	LOG_AUTH
41	LOG_SYSLOG
42	LOG_LPR
43	LOG_NEWS
44	LOG_UUCP
45	LOG_CRON
46	LOG_AUTHPRIV
47	LOG_FTP
48	_ // unused
49	_ // unused
50	_ // unused
51	_ // unused
52	LOG_LOCAL0
53	LOG_LOCAL1
54	LOG_LOCAL2
55	LOG_LOCAL3
56	LOG_LOCAL4
57	LOG_LOCAL5
58	LOG_LOCAL6
59	LOG_LOCAL7
60)
61
62func validatePriority(p Priority) error {
63	if p < 0 || p > LOG_LOCAL7|LOG_DEBUG {
64		return errors.New("log/syslog: invalid priority")
65	} else {
66		return nil
67	}
68}
69