Blame include/log.h

Packit 8480eb
/* ----------------------------------------------------------------------- *
Packit 8480eb
 *
Packit 8480eb
 *  log.c - applcation logging declarations.
Packit 8480eb
 *
Packit 8480eb
 *   Copyright 2004 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
Packit 8480eb
 *				 - All Rights Reserved
Packit 8480eb
 *   Copyright 2005 Ian Kent <raven@themaw.net> - All Rights Reserved
Packit 8480eb
 *
Packit 8480eb
 *   This program is free software; you can redistribute it and/or modify
Packit 8480eb
 *   it under the terms of the GNU General Public License as published by
Packit 8480eb
 *   the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
Packit 8480eb
 *   USA; either version 2 of the License, or (at your option) any later
Packit 8480eb
 *   version; incorporated herein by reference.
Packit 8480eb
 *
Packit 8480eb
 * ----------------------------------------------------------------------- */
Packit 8480eb
Packit 8480eb
#ifndef LOG_H
Packit 8480eb
#define LOG_H
Packit 8480eb
Packit 8480eb
/* Define logging functions */
Packit 8480eb
Packit 8480eb
#define LOGOPT_NONE	0x0000
Packit 8480eb
#define LOGOPT_ERROR	0x0000
Packit 8480eb
#define LOGOPT_DEBUG	0x0001
Packit 8480eb
#define LOGOPT_VERBOSE	0x0002
Packit 8480eb
#define LOGOPT_ANY	(LOGOPT_DEBUG | LOGOPT_VERBOSE)
Packit 8480eb
Packit 8480eb
struct autofs_point;
Packit 8480eb
Packit 8480eb
extern void set_log_norm(void);
Packit 8480eb
extern void set_log_verbose(void);
Packit 8480eb
extern void set_log_debug(void);
Packit 8480eb
extern void set_log_norm_ap(struct autofs_point *ap);
Packit 8480eb
extern void set_log_verbose_ap(struct autofs_point *ap);
Packit 8480eb
extern void set_log_debug_ap(struct autofs_point *ap);
Packit 8480eb
extern void set_mnt_logging(unsigned global_logopt);
Packit 8480eb
Packit 8480eb
extern void open_log(void);
Packit Service 145c60
extern void log_to_syslog(void);
Packit 8480eb
extern void log_to_stderr(void);
Packit 8480eb
 
Packit 8480eb
extern void log_info(unsigned int, const char* msg, ...);
Packit 8480eb
extern void log_notice(unsigned int, const char* msg, ...);
Packit 8480eb
extern void log_warn(unsigned int, const char* msg, ...);
Packit 8480eb
extern void log_error(unsigned, const char* msg, ...);
Packit 8480eb
extern void log_crit(unsigned, const char* msg, ...);
Packit 8480eb
extern void log_debug(unsigned int, const char* msg, ...);
Packit 8480eb
extern void logmsg(const char* msg, ...);
Packit 8480eb
Packit 8480eb
#define debug(opt, msg, args...)	\
Packit 8480eb
	do { log_debug(opt, "%s: " msg,  __FUNCTION__, ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define info(opt, msg, args...)		\
Packit 8480eb
	do { log_info(opt, msg,  ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define notice(opt, msg, args...)	\
Packit 8480eb
	do { log_notice(opt, msg, ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define warn(opt, msg, args...)		\
Packit 8480eb
	do { log_warn(opt, msg, ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define error(opt, msg, args...)	\
Packit 8480eb
	do { log_error(opt, "%s: " msg,  __FUNCTION__, ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define crit(opt, msg, args...)	\
Packit 8480eb
	do { log_crit(opt, "%s: " msg,  __FUNCTION__, ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define logerr(msg, args...)	\
Packit 8480eb
	do { logmsg("%s:%d: " msg, __FUNCTION__, __LINE__, ##args); } while (0)
Packit 8480eb
Packit 8480eb
#define fatal(status)						    \
Packit 8480eb
	do {							    \
Packit 8480eb
		if (status == EDEADLK) {			    \
Packit 8480eb
			logmsg("deadlock detected "		    \
Packit 8480eb
				 "at line %d in %s, dumping core.", \
Packit 8480eb
				  __LINE__, __FILE__);		    \
Packit 8480eb
			dump_core();				    \
Packit 8480eb
		}						    \
Packit 8480eb
		logmsg("unexpected pthreads error: %d at %d "	    \
Packit 8480eb
			 "in %s", status, __LINE__, __FILE__);	    \
Packit 8480eb
		abort();					    \
Packit 8480eb
	} while(0)
Packit 8480eb
Packit 8480eb
#ifndef NDEBUG
Packit 8480eb
#define assert(x)							\
Packit 8480eb
do {									\
Packit 8480eb
	if (!(x)) {							\
Packit 8480eb
		logmsg(__FILE__					\
Packit 8480eb
			 ":%d: assertion failed: " #x, __LINE__);	\
Packit 8480eb
	}								\
Packit 8480eb
} while(0)
Packit 8480eb
#else
Packit 8480eb
#define assert(x)	do { } while(0)
Packit 8480eb
#endif
Packit 8480eb
Packit 8480eb
#endif
Packit 8480eb