xref: /haiku/src/tests/system/libroot/posix/SyslogTest.cpp (revision 04171cfc5c10c98b9ba3c7233a271f6165cdd36f)
1 /*
2  * Copyright 2003-2015, Axel Dörfler, axeld@pinc-software.de.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include <stdio.h>
8 #include <string.h>
9 #include <stdlib.h>
10 #include <syslog.h>
11 
12 
13 int
14 main(int argc, char **argv)
15 {
16 	openlog_team("SyslogTest", LOG_PID, LOG_USER);
17 
18 	log_team(LOG_ERR, "this is %.", "a test");
19 
20 	int mask = setlogmask_team(LOG_MASK(LOG_CRIT));
21 	printf("team mask == %d\n", mask);
22 
23 	log_team(LOG_WARNING, "this is a warning (hidden)");
24 	log_team(LOG_CRIT, "this is a critical condition (visible)");
25 
26 	setlogmask_team(mask);
27 	syslog(LOG_WARNING, "thread warning (visible)");
28 	syslog(LOG_CRIT, "thread critical condition (visible)");
29 	syslog(LOG_CRIT, "thread critical condition (visible)");
30 
31 	setlogmask(LOG_MASK(LOG_WARNING));
32 	log_team(LOG_WARNING | LOG_MAIL, "2. this is a warning from the MAIL facility (visible)");
33 	log_team(LOG_CRIT, "2. this is a critical condition (visible)");
34 	log_team(LOG_CRIT, "2. this is a critical condition (visible)");
35 	log_team(LOG_CRIT, "2. this is a critical condition (visible)");
36 		// test repeat message suppressing as well
37 
38 	openlog(NULL, LOG_PERROR, LOG_USER);
39 	syslog(LOG_WARNING, "thread/perror warning (visible in stderr as well)");
40 	syslog(LOG_CRIT, "thread/perror critical condition (hidden)");
41 
42 	openlog(NULL, LOG_CONS | LOG_PID, LOG_DAEMON);
43 	syslog(LOG_WARNING, "thread/cons warning (visible in stderr only when there is no syslog_daemon)");
44 
45 	openlog("", 0, LOG_DAEMON);
46 	syslog(LOG_WARNING, "thread warning without ident (visible)");
47 
48 	setlogmask(LOG_EMERG);
49 	closelog();
50 		// this should inherit the team log context on next logging entry
51 
52 	syslog(LOG_ALERT, "now what are we doing here? (visible)");
53 	return 0;
54 }
55