]> andersk Git - openssh.git/blob - log.h
- stevesk@cvs.openbsd.org 2001/02/04 08:32:27
[openssh.git] / log.h
1 /*      $OpenBSD: log.h,v 1.2 2001/01/29 01:58:16 niklas 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 /* Supported syslog facilities and levels. */
19 typedef enum {
20         SYSLOG_FACILITY_DAEMON,
21         SYSLOG_FACILITY_USER,
22         SYSLOG_FACILITY_AUTH,
23 #ifdef LOG_AUTHPRIV
24         SYSLOG_FACILITY_AUTHPRIV,
25 #endif
26         SYSLOG_FACILITY_LOCAL0,
27         SYSLOG_FACILITY_LOCAL1,
28         SYSLOG_FACILITY_LOCAL2,
29         SYSLOG_FACILITY_LOCAL3,
30         SYSLOG_FACILITY_LOCAL4,
31         SYSLOG_FACILITY_LOCAL5,
32         SYSLOG_FACILITY_LOCAL6,
33         SYSLOG_FACILITY_LOCAL7
34 }       SyslogFacility;
35
36 typedef enum {
37         SYSLOG_LEVEL_QUIET,
38         SYSLOG_LEVEL_FATAL,
39         SYSLOG_LEVEL_ERROR,
40         SYSLOG_LEVEL_INFO,
41         SYSLOG_LEVEL_VERBOSE,
42         SYSLOG_LEVEL_DEBUG1,
43         SYSLOG_LEVEL_DEBUG2,
44         SYSLOG_LEVEL_DEBUG3
45 }       LogLevel;
46 /* Initializes logging. */
47 void    log_init(char *av0, LogLevel level, SyslogFacility facility, int on_stderr);
48
49 /* Logging implementation, depending on server or client */
50 void    do_log(LogLevel level, const char *fmt, va_list args);
51
52 /* name to facility/level */
53 SyslogFacility log_facility_number(char *name);
54 LogLevel log_level_number(char *name);
55
56 /* Output a message to syslog or stderr */
57 void    fatal(const char *fmt,...) __attribute__((format(printf, 1, 2)));
58 void    error(const char *fmt,...) __attribute__((format(printf, 1, 2)));
59 void    log(const char *fmt,...) __attribute__((format(printf, 1, 2)));
60 void    verbose(const char *fmt,...) __attribute__((format(printf, 1, 2)));
61 void    debug(const char *fmt,...) __attribute__((format(printf, 1, 2)));
62 void    debug2(const char *fmt,...) __attribute__((format(printf, 1, 2)));
63 void    debug3(const char *fmt,...) __attribute__((format(printf, 1, 2)));
64
65 /* same as fatal() but w/o logging */
66 void    fatal_cleanup(void);
67
68 /*
69  * Registers a cleanup function to be called by fatal()/fatal_cleanup()
70  * before exiting. It is permissible to call fatal_remove_cleanup for the
71  * function itself from the function.
72  */
73 void    fatal_add_cleanup(void (*proc) (void *context), void *context);
74
75 /* Removes a cleanup function to be called at fatal(). */
76 void    fatal_remove_cleanup(void (*proc) (void *context), void *context);
77
78 #endif
This page took 0.249459 seconds and 5 git commands to generate.