snmp_logging.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:4k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #ifndef SNMP_LOGGING_H
  2. #define SNMP_LOGGING_H
  3. #ifdef __cplusplus
  4. extern          "C" {
  5. #endif
  6. #if HAVE_SYSLOG_H
  7. #include <syslog.h>
  8. #endif
  9. #if HAVE_STDARG_H
  10. #include <stdarg.h>
  11. #else
  12. #include <varargs.h>
  13. #endif
  14. #ifndef LOG_ERR
  15. #define LOG_EMERG       0       /* system is unusable */
  16. #define LOG_ALERT       1       /* action must be taken immediately */
  17. #define LOG_CRIT        2       /* critical conditions */
  18. #define LOG_ERR         3       /* error conditions */
  19. #define LOG_WARNING     4       /* warning conditions */
  20. #define LOG_NOTICE      5       /* normal but significant condition */
  21. #define LOG_INFO        6       /* informational */
  22. #define LOG_DEBUG       7       /* debug-level messages */
  23. #endif
  24.     struct snmp_log_message {
  25.         int             priority;
  26.         const char     *msg;
  27.     };
  28. #ifndef DEFAULT_LOG_ID
  29. #define DEFAULT_LOG_ID "net-snmp"
  30. #endif
  31.     void            init_snmp_logging(void);
  32.     int             snmp_get_do_logging(void);
  33.     void            snmp_disable_syslog(void);
  34.     void            snmp_disable_filelog(void);
  35.     void            snmp_disable_stderrlog(void);
  36.     void            snmp_disable_calllog(void);
  37.     void            snmp_disable_log(void);
  38.     void            snmp_enable_syslog(void);
  39.     void            snmp_enable_syslog_ident(const char *ident,
  40.                                              const int   facility);
  41.     void            snmp_enable_filelog(const char *logfilename,
  42.                                         int dont_zero_log);
  43.     void            snmp_enable_stderrlog(void);
  44.     void            snmp_enable_calllog(void);
  45.     int             snmp_stderrlog_status(void);
  46. #if HAVE_STDARG_H
  47. # if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
  48.     int             snmp_log(int priority, const char *format, ...);
  49. # else
  50.     int             snmp_log(int priority, const char *format, ...)
  51.                      __attribute__ ((__format__ (__printf__, 2, 3)));
  52. # endif
  53. #else
  54.     int             snmp_log(va_alist);
  55. #endif
  56.     int             snmp_vlog(int priority, const char *format,
  57.                               va_list ap);
  58.     /*
  59.      * 0 - successful message formatting 
  60.      */
  61.     /*
  62.      * -1 - Could not format log-string 
  63.      */
  64.     /*
  65.      * -2 - Could not allocate memory for log-message 
  66.      */
  67.     /*
  68.      * -3 - Log-message too long! 
  69.      */
  70.     void            snmp_log_perror(const char *s);
  71. #define NETSNMP_LOGHANDLER_STDOUT 1
  72. #define NETSNMP_LOGHANDLER_STDERR 2
  73. #define NETSNMP_LOGHANDLER_FILE 3
  74. #define NETSNMP_LOGHANDLER_SYSLOG 4
  75. #define NETSNMP_LOGHANDLER_CALLBACK 5
  76. #define NETSNMP_LOGHANDLER_NONE 6
  77.     int snmp_log_options(char *optarg, int argc, char *const *argv);
  78.     void snmp_log_options_usage(const char *lead, FILE *outf);
  79.     char *snmp_log_syslogname(const char *syslogname);
  80.     typedef struct netsnmp_log_handler_s netsnmp_log_handler; 
  81.     typedef int (NetsnmpLogHandler)(netsnmp_log_handler*, int, const char *);
  82.     NetsnmpLogHandler log_handler_stdouterr;
  83.     NetsnmpLogHandler log_handler_file;
  84.     NetsnmpLogHandler log_handler_syslog;
  85.     NetsnmpLogHandler log_handler_callback;
  86.     NetsnmpLogHandler log_handler_null;
  87.     struct netsnmp_log_handler_s {
  88.         int enabled;
  89.         int priority;
  90.         int pri_max;
  91.         int type;
  92. const char *token; /* Also used for filename */
  93. NetsnmpLogHandler *handler;
  94. int     imagic; /* E.g. file descriptor, syslog facility */
  95. void   *magic; /* E.g. Callback function */
  96. netsnmp_log_handler *next, *prev;
  97.     };
  98. netsnmp_log_handler *get_logh_head( void );
  99. netsnmp_log_handler *netsnmp_register_loghandler( int type, int pri );
  100. netsnmp_log_handler *netsnmp_find_loghandler( const char *token );
  101. int netsnmp_add_loghandler(    netsnmp_log_handler *logh );
  102. int netsnmp_remove_loghandler( netsnmp_log_handler *logh );
  103. int netsnmp_enable_loghandler( const char *token );
  104. int netsnmp_disable_loghandler( const char *token );
  105. #ifdef __cplusplus
  106. }
  107. #endif
  108. #endif                          /* SNMP_LOGGING_H */