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 */