xref: /titanic_50/usr/src/cmd/ssh/include/log.h (revision c77a61a72b5ecdc507d6cf104142edd371a16c84)
1 /*
2  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
3  * Use is subject to license terms.
4  */
5 /*	$OpenBSD: log.h,v 1.8 2002/07/19 15:43:33 markus Exp $	*/
6 
7 #ifndef	_LOG_H
8 #define	_LOG_H
9 
10 #pragma ident	"%Z%%M%	%I%	%E% SMI"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 
17 /*	$OpenBSD: log.h,v 1.8 2002/07/19 15:43:33 markus Exp $	*/
18 
19 /*
20  * Author: Tatu Ylonen <ylo@cs.hut.fi>
21  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
22  *                    All rights reserved
23  *
24  * As far as I am concerned, the code I have written for this software
25  * can be used freely for any purpose.  Any derived versions of this
26  * software must be clearly marked as such, and if the derived work is
27  * incompatible with the protocol description in the RFC file, it must be
28  * called by a name other than "ssh" or "Secure Shell".
29  */
30 
31 #include <syslog.h> /* Needed for LOG_AUTHPRIV (if present) */
32 
33 /* Supported syslog facilities and levels. */
34 typedef enum {
35 	SYSLOG_FACILITY_DAEMON,
36 	SYSLOG_FACILITY_USER,
37 	SYSLOG_FACILITY_AUTH,
38 #ifdef LOG_AUTHPRIV
39 	SYSLOG_FACILITY_AUTHPRIV,
40 #endif
41 	SYSLOG_FACILITY_LOCAL0,
42 	SYSLOG_FACILITY_LOCAL1,
43 	SYSLOG_FACILITY_LOCAL2,
44 	SYSLOG_FACILITY_LOCAL3,
45 	SYSLOG_FACILITY_LOCAL4,
46 	SYSLOG_FACILITY_LOCAL5,
47 	SYSLOG_FACILITY_LOCAL6,
48 	SYSLOG_FACILITY_LOCAL7,
49 	SYSLOG_FACILITY_NOT_SET = -1
50 }       SyslogFacility;
51 
52 typedef enum {
53 	SYSLOG_LEVEL_QUIET,
54 	SYSLOG_LEVEL_FATAL,
55 	SYSLOG_LEVEL_ERROR,
56 	SYSLOG_LEVEL_NOTICE,
57 	SYSLOG_LEVEL_INFO,
58 	SYSLOG_LEVEL_VERBOSE,
59 	SYSLOG_LEVEL_DEBUG1,
60 	SYSLOG_LEVEL_DEBUG2,
61 	SYSLOG_LEVEL_DEBUG3,
62 	SYSLOG_LEVEL_NOT_SET = -1
63 }       LogLevel;
64 
65 void     log_init(char *, LogLevel, SyslogFacility, int);
66 
67 SyslogFacility	log_facility_number(char *);
68 LogLevel log_level_number(char *);
69 
70 void	 set_log_txt_prefix(const char *);
71 void     fatal(const char *, ...) __attribute__((format(printf, 1, 2)));
72 void     error(const char *, ...) __attribute__((format(printf, 1, 2)));
73 void     notice(const char *, ...) __attribute__((format(printf, 1, 2)));
74 void     log(const char *, ...) __attribute__((format(printf, 1, 2)));
75 void     verbose(const char *, ...) __attribute__((format(printf, 1, 2)));
76 void     debug(const char *, ...) __attribute__((format(printf, 1, 2)));
77 void     debug2(const char *, ...) __attribute__((format(printf, 1, 2)));
78 void     debug3(const char *, ...) __attribute__((format(printf, 1, 2)));
79 
80 void     fatal_cleanup(void);
81 void     fatal_add_cleanup(void (*) (void *), void *);
82 void     fatal_remove_cleanup(void (*) (void *), void *);
83 void     fatal_remove_all_cleanups(void);
84 
85 void	 do_log(LogLevel, const char *, va_list);
86 
87 #ifdef __cplusplus
88 }
89 #endif
90 
91 #endif /* _LOG_H */
92