This repository has been archived on 2021-02-08. You can view files and clone it, but cannot push or open issues or pull requests.
uIRCd/src/log.h

51 lines
2.4 KiB
C
Raw Normal View History

/*
* This file is part of uIRCd. (https://git.redxen.eu/caskd/uIRCd)
2020-08-17 20:13:17 +00:00
* Copyright (c) 2019, 2020 Alex-David Denes * * uIRCd 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
* any later version.
*
* uIRCd 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 uIRCd. If not, see <https://www.gnu.org/licenses/>.
*/
#include "global.h"
#include "structs.h"
#include <errno.h>
#include <stdio.h>
#include <string.h>
#ifndef _UIRCD_INCLUDED_LOG
#define _UIRCD_INCLUDED_LOG
#define LOG_FATAL 0
#define LOG_ERROR 1
#define LOG_WARN 2
#define LOG_INFO 3
2020-08-17 20:13:17 +00:00
#define LOG_VERBOSE 4
#define LOG_DEBUG 5
2020-08-17 20:13:17 +00:00
#define LOG(LEVEL, ...) \
{ \
if (LEVEL <= loglevel) { \
char* logchar = "?"; \
switch (LEVEL) { \
case (LOG_DEBUG): logchar = "D"; break; \
case (LOG_VERBOSE): logchar = "V"; break; \
case (LOG_INFO): logchar = "I"; break; \
case (LOG_WARN): logchar = "W"; break; \
case (LOG_ERROR): logchar = "E"; break; \
case (LOG_FATAL): logchar = "F"; break; \
} \
fprintf(stderr, "[%s] ", logchar); \
fprintf(stderr, __VA_ARGS__); \
if (loglevel == LOG_DEBUG) \
fprintf(stderr, " --> LINE: %i -- FILE: %s", __LINE__, __FILE__); \
putc('\n', stderr); \
} \
}
#endif