xref: /haiku/headers/posix/syslog.h (revision f7c507c3a6fbf3a44c59500543926a9088724968)
1 /*
2  * Copyright 2003-2012 Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _SYSLOG_H_
6 #define _SYSLOG_H_
7 
8 
9 #include <stdarg.h>
10 
11 
12 /* options for openlog() */
13 
14 #define LOG_PID			(1 << 12)	/* log the process (thread/team) ID with each message */
15 #define LOG_CONS		(2 << 12)	/* log to the system console on error */
16 #define LOG_ODELAY		(4 << 12)	/* delay open until syslog() is called */
17 #define LOG_NDELAY		(8 << 12)	/* connect to the syslog daemon immediately */
18 #define LOG_SERIAL		(16 << 12)	/* dump to serial output as well (not implemented) */
19 #define LOG_PERROR		(32 << 12)	/* dump to stderr as well */
20 #define LOG_NOWAIT		(64 << 12)	/* do not wait for child processes */
21 
22 
23 /* facilities */
24 
25 #define LOG_KERN		(0 << 3)	/* messages generated by the kernel */
26 #define LOG_USER		(1 << 3)	/* by user processes */
27 #define LOG_MAIL		(2 << 3)
28 #define LOG_DAEMON		(3 << 3)
29 #define LOG_AUTH		(4 << 3)
30 #define LOG_SYSLOG		(5 << 3)	/* messages generated internally by syslogd */
31 #define LOG_LPR			(6 << 3)
32 #define LOG_NEWS		(7 << 3)
33 #define LOG_UUCP		(8 << 3)
34 #define LOG_CRON		(9 << 3)
35 #define LOG_AUTHPRIV	(10 << 3)	/* security/authorization messages (private) */
36 #define LOG_FTP			(11 << 3)
37 
38 /* these are for local use: */
39 #define LOG_LOCAL0		(16 << 3)
40 #define LOG_LOCAL1		(17 << 3)
41 #define LOG_LOCAL2		(18 << 3)
42 #define LOG_LOCAL3		(19 << 3)
43 #define LOG_LOCAL4		(20 << 3)
44 #define LOG_LOCAL5		(21 << 3)
45 #define LOG_LOCAL6		(22 << 3)
46 #define LOG_LOCAL7		(23 << 3)
47 
48 #define	LOG_NFACILITIES	(24)		/* current number of facilities */
49 #define	LOG_FACMASK		(0x03f8)	/* mask to extract facility part */
50 #define	LOG_FAC(p)		(((p) & LOG_FACMASK) >> 3)
51 
52 /* priorities */
53 
54 #define LOG_EMERG		0	/* a panic condition */
55 #define LOG_PANIC		LOG_EMERG
56 #define LOG_ALERT		1	/* a condition that should be corrected immediately */
57 #define LOG_CRIT		2	/* critical conditions like hard drive errors */
58 #define LOG_ERR			3
59 #define LOG_WARNING		4
60 #define LOG_NOTICE		5
61 #define LOG_INFO		6
62 #define LOG_DEBUG		7
63 
64 /* turns a priority into a mask usable for setlogmask() */
65 #define LOG_MASK(pri)	(1 << (pri))
66 #define LOG_UPTO(pri)	((1 << ((pri) + 1)) - 1)
67 
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
73 /* POSIX calls */
74 extern void	closelog(void);
75 extern void	openlog(const char *ident, int options, int facility);
76 extern int	setlogmask(int priorityMask);
77 extern void	syslog(int priority, const char *message, ...);
78 
79 /* Be extensions */
80 extern void	closelog_team(void);
81 extern void	openlog_team(const char *ident, int logopt, int facility);
82 extern void log_team(int priority, const char *message, ...);
83 extern int	setlogmask_team(int priorityMask);
84 
85 extern void	closelog_thread(void);
86 extern void	openlog_thread(const char *ident, int logopt, int facility);
87 extern void log_thread(int priority, const char *message, ...);
88 extern int	setlogmask_thread(int priorityMask);
89 
90 /* BSD extensions */
91 extern void	vsyslog(int priority, const char *message, va_list args);
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 
97 #endif	/* _SYSLOG_H_ */
98