/*
 *      rsvndump - remote svn repository dump
 *      Copyright (C) 2008-present Jonas Gehring
 *
 *      This program is free software: you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation, either version 3 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *
 *      file: logger.c
 *      desc: Simple logging to stderr
 */


#include <stdio.h>
#include <stdarg.h>

#include "logger.h"


/* Simple macro for logging to stderr */
#define LOG_STDERR() \
	do { \
		int res; \
		va_list argptr; \
		va_start(argptr, format); \
		res = vfprintf(stderr, format, argptr); \
		va_end(argptr); \
		return res; \
	} while (0)


/* Default verbosity is zero, negative verbosity is quiet */
int loglevel = 0;

/* Logging functions */
int L0(const char *format, ...)
{
	if (loglevel < 0) {
		return 0;
	}
	LOG_STDERR();
}

int L1(const char *format, ...)
{
	if (loglevel < 1) {
		return 0;
	}
	LOG_STDERR();
}

int L2(const char *format, ...)
{
	if (loglevel < 2) {
		return 0;
	}
	LOG_STDERR();
}

/* Logging for debugging purposes */
int LDEBUG(const char *format, ...)
{
	if (loglevel < 3) {
		return 0;
	}
	LOG_STDERR();
}
