log.h revision 98937
1/*	$OpenBSD: log.h,v 1.7 2002/05/19 20:54:52 deraadt Exp $	*/
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 *                    All rights reserved
7 *
8 * As far as I am concerned, the code I have written for this software
9 * can be used freely for any purpose.  Any derived versions of this
10 * software must be clearly marked as such, and if the derived work is
11 * incompatible with the protocol description in the RFC file, it must be
12 * called by a name other than "ssh" or "Secure Shell".
13 */
14
15#ifndef SSH_LOG_H
16#define SSH_LOG_H
17
18#include <syslog.h> /* Needed for LOG_AUTHPRIV (if present) */
19
20/* Supported syslog facilities and levels. */
21typedef enum {
22	SYSLOG_FACILITY_DAEMON,
23	SYSLOG_FACILITY_USER,
24	SYSLOG_FACILITY_AUTH,
25#ifdef LOG_AUTHPRIV
26	SYSLOG_FACILITY_AUTHPRIV,
27#endif
28	SYSLOG_FACILITY_LOCAL0,
29	SYSLOG_FACILITY_LOCAL1,
30	SYSLOG_FACILITY_LOCAL2,
31	SYSLOG_FACILITY_LOCAL3,
32	SYSLOG_FACILITY_LOCAL4,
33	SYSLOG_FACILITY_LOCAL5,
34	SYSLOG_FACILITY_LOCAL6,
35	SYSLOG_FACILITY_LOCAL7,
36	SYSLOG_FACILITY_NOT_SET = -1
37}       SyslogFacility;
38
39typedef enum {
40	SYSLOG_LEVEL_QUIET,
41	SYSLOG_LEVEL_FATAL,
42	SYSLOG_LEVEL_ERROR,
43	SYSLOG_LEVEL_INFO,
44	SYSLOG_LEVEL_VERBOSE,
45	SYSLOG_LEVEL_DEBUG1,
46	SYSLOG_LEVEL_DEBUG2,
47	SYSLOG_LEVEL_DEBUG3,
48	SYSLOG_LEVEL_NOT_SET = -1
49}       LogLevel;
50
51void     log_init(char *, LogLevel, SyslogFacility, int);
52
53SyslogFacility	log_facility_number(char *);
54LogLevel log_level_number(char *);
55
56void     fatal(const char *, ...) __attribute__((format(printf, 1, 2)));
57void     error(const char *, ...) __attribute__((format(printf, 1, 2)));
58void     log(const char *, ...) __attribute__((format(printf, 1, 2)));
59void     verbose(const char *, ...) __attribute__((format(printf, 1, 2)));
60void     debug(const char *, ...) __attribute__((format(printf, 1, 2)));
61void     debug2(const char *, ...) __attribute__((format(printf, 1, 2)));
62void     debug3(const char *, ...) __attribute__((format(printf, 1, 2)));
63
64void     fatal_cleanup(void);
65void     fatal_add_cleanup(void (*) (void *), void *);
66void     fatal_remove_cleanup(void (*) (void *), void *);
67
68void	 do_log(LogLevel, const char *, va_list);
69
70#endif
71