| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| #ifndef LOG_H |
| #define LOG_H |
| |
| |
| |
| #define LOGOPT_NONE 0x0000 |
| #define LOGOPT_ERROR 0x0000 |
| #define LOGOPT_DEBUG 0x0001 |
| #define LOGOPT_VERBOSE 0x0002 |
| #define LOGOPT_ANY (LOGOPT_DEBUG | LOGOPT_VERBOSE) |
| |
| struct autofs_point; |
| |
| extern void set_log_norm(void); |
| extern void set_log_verbose(void); |
| extern void set_log_debug(void); |
| extern void set_log_norm_ap(struct autofs_point *ap); |
| extern void set_log_verbose_ap(struct autofs_point *ap); |
| extern void set_log_debug_ap(struct autofs_point *ap); |
| extern void set_mnt_logging(unsigned global_logopt); |
| |
| extern void open_log(void); |
| extern void log_to_stderr(void); |
| |
| extern void log_info(unsigned int, const char* msg, ...); |
| extern void log_notice(unsigned int, const char* msg, ...); |
| extern void log_warn(unsigned int, const char* msg, ...); |
| extern void log_error(unsigned, const char* msg, ...); |
| extern void log_crit(unsigned, const char* msg, ...); |
| extern void log_debug(unsigned int, const char* msg, ...); |
| extern void logmsg(const char* msg, ...); |
| |
| extern pid_t log_pidinfo(struct autofs_point *ap, pid_t pid, char *label); |
| |
| #define debug(opt, msg, args...) \ |
| do { log_debug(opt, "%s: " msg, __FUNCTION__, ##args); } while (0) |
| |
| #define info(opt, msg, args...) \ |
| do { log_info(opt, msg, ##args); } while (0) |
| |
| #define notice(opt, msg, args...) \ |
| do { log_notice(opt, msg, ##args); } while (0) |
| |
| #define warn(opt, msg, args...) \ |
| do { log_warn(opt, msg, ##args); } while (0) |
| |
| #define error(opt, msg, args...) \ |
| do { log_error(opt, "%s: " msg, __FUNCTION__, ##args); } while (0) |
| |
| #define crit(opt, msg, args...) \ |
| do { log_crit(opt, "%s: " msg, __FUNCTION__, ##args); } while (0) |
| |
| #define logerr(msg, args...) \ |
| do { logmsg("%s:%d: " msg, __FUNCTION__, __LINE__, ##args); } while (0) |
| |
| #define fatal(status) \ |
| do { \ |
| if (status == EDEADLK) { \ |
| logmsg("deadlock detected " \ |
| "at line %d in %s, dumping core.", \ |
| __LINE__, __FILE__); \ |
| dump_core(); \ |
| } \ |
| logmsg("unexpected pthreads error: %d at %d " \ |
| "in %s", status, __LINE__, __FILE__); \ |
| abort(); \ |
| } while(0) |
| |
| #ifndef NDEBUG |
| #define assert(x) \ |
| do { \ |
| if (!(x)) { \ |
| logmsg(__FILE__ \ |
| ":%d: assertion failed: " #x, __LINE__); \ |
| } \ |
| } while(0) |
| #else |
| #define assert(x) do { } while(0) |
| #endif |
| |
| #endif |
| |