Пример #1
0
static void
dm_write_log (int level, const char *file, int line, const char *f, ...)
{
	va_list ap;
	int thres;

	if (level > 6)
		level = 6;

	thres = (conf) ? conf->verbosity : 0;
	if (thres <= 3 || level > thres)
		return;

	va_start(ap, f);
	if (!logsink) {
		time_t t = time(NULL);
		struct tm *tb = localtime(&t);
		char buff[16];

		strftime(buff, sizeof(buff), "%b %d %H:%M:%S", tb);
		buff[sizeof(buff)-1] = '\0';

		fprintf(stdout, "%s | ", buff);
		fprintf(stdout, "libdevmapper: %s(%i): ", file, line);
		vfprintf(stdout, f, ap);
		fprintf(stdout, "\n");
	} else {
		condlog(level, "libdevmapper: %s(%i): ", file, line);
		log_safe(level + 3, f, ap);
	}
	va_end(ap);

	return;
}
Пример #2
0
void dlog (int sink, int prio, const char * fmt, ...)
{
	va_list ap;
	int thres;

	va_start(ap, fmt);
	thres = (conf) ? conf->verbosity : 0;

	if (prio <= thres) {
		if (sink < 1) {
			if (sink == 0) {
				time_t t = time(NULL);
				struct tm *tb = localtime(&t);
				char buff[16];

				strftime(buff, sizeof(buff),
					 "%b %d %H:%M:%S", tb);
				buff[sizeof(buff)-1] = '\0';

				fprintf(stdout, "%s | ", buff);
			}
			vfprintf(stdout, fmt, ap);
		}
		else
			log_safe(prio + 3, fmt, ap);
	}
	va_end(ap);
}
Пример #3
0
void dlog (int sink, int prio, const char * fmt, ...)
{
	va_list ap;
	int thres;
	struct config *conf;

	va_start(ap, fmt);
	conf = get_multipath_config();
	ANNOTATE_IGNORE_READS_BEGIN();
	thres = (conf) ? conf->verbosity : 0;
	ANNOTATE_IGNORE_READS_END();
	put_multipath_config(conf);

	if (prio <= thres) {
		if (sink < 1) {
			if (sink == 0) {
				time_t t = time(NULL);
				struct tm *tb = localtime(&t);
				char buff[16];

				strftime(buff, sizeof(buff),
					 "%b %d %H:%M:%S", tb);
				buff[sizeof(buff)-1] = '\0';

				fprintf(stdout, "%s | ", buff);
			}
			vfprintf(stdout, fmt, ap);
		}
		else
			log_safe(prio + 3, fmt, ap);
	}
	va_end(ap);
}
Пример #4
0
void
log_level_down(void)
{
    struct logger *l = &logger;

    if (l->level > LOG_EMERG) {
        l->level--;
        log_safe("down log level to %d", l->level);
    }
}
Пример #5
0
void
log_level_up(void)
{
    struct logger *l = &logger;

    if (l->level < LOG_PVERB) {
        l->level++;
        log_safe("up log level to %d", l->level);
    }
}
Пример #6
0
void
signal_handler(int signo)
{
    struct signal *sig;
    void (*action)(void);
    char *actionstr;
    bool done;

    for (sig = signals; sig->signo != 0; sig++) {
        if (sig->signo == signo) {
            break;
        }
    }
    ASSERT(sig->signo != 0);

    actionstr = "";
    action = NULL;
    done = false;

    switch (signo) {
    case SIGUSR1:
        actionstr = ", config reload";
        break;

    case SIGUSR2:
        break;

    case SIGTTIN:
        actionstr = ", up logging level";
        action = log_level_up;
        break;

    case SIGTTOU:
        actionstr = ", down logging level";
        action = log_level_down;
        break;

    case SIGHUP:
        actionstr = ", reopening log file";
        action = log_reopen;
        break;

    case SIGINT:
        done = true;
        actionstr = ", exiting";
        break;

    case SIGSEGV:
        log_stacktrace();
        actionstr = ", core dumping";
        raise(SIGSEGV);
        break;

    default:
        NOT_REACHED();
    }

    log_safe("signal %d (%s) received%s", signo, sig->signame, actionstr);

    if (action != NULL) {
        action();
    }

    if (done) {
        exit(1);
    }

    signal_report_to_channel(signo);
}
Пример #7
0
void
signal_handler(int signo)
{
    struct signal *sig;
    void (*action)(void);
    char *actionstr;
    bool done;

    for (sig = signals; sig->signo != 0; sig++) {
        if (sig->signo == signo) {
            break;
        }
    }
    ASSERT(sig->signo != 0);

    actionstr = "";
    action = NULL;
    done = false;

    switch (signo) {
    case SIGUSR1:
#if 1 //shenzheng 2015-3-26 for debug
#ifdef NC_DEBUG_LOG
		actionstr = ", print timeout used msgs";
		action = print_timeout_used_msgs;
#endif
#endif //shenzheng 2015-3-26 for debug
        break;

    case SIGUSR2:
#if 1 //shenzheng 2015-3-26 for debug
#ifdef NC_DEBUG_LOG
		actionstr = ", print used msgs";
		action = print_used_msgs;
#endif
#endif //shenzheng 2015-3-26 for debug
        break;

    case SIGTTIN:
        actionstr = ", up logging level";
        action = log_level_up;
        break;

    case SIGTTOU:
        actionstr = ", down logging level";
        action = log_level_down;
        break;

    case SIGHUP:
        actionstr = ", reopening log file";
        action = log_reopen;
        break;

    case SIGINT:
        done = true;
        actionstr = ", exiting";
        break;

    case SIGSEGV:
        log_stacktrace();
        actionstr = ", core dumping";
        raise(SIGSEGV);
        break;

    default:
        NOT_REACHED();
    }

    log_safe("signal %d (%s) received%s", signo, sig->signame, actionstr);

    if (action != NULL) {
        action();
    }

    if (done) {
        exit(1);
    }
}