// GPGEdit edits GPG encrypted files // Copyright (C) 2018 Aaron Ball // // 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 . #include "logger.h" int _log_level = LOG_INFO; // Global log level, set by logger_init(). // logger_init: // Initialize the logger-related variables. // // @lvl Integer representing log level. Use LOG_* macros (eg: LOG_ERROR, // LOG_DEBUG, LOG_INFO, etc) void logger_init(int lvl) { _log_level = lvl; } // logger: // Logger function. Writes log messages to stdout if specified message level is // less than or equal to the runtime global log level. Global log level is set // by logger_init. // // @lvl Integer representing log level // @format Format (like printf) of message // @... Additional arguments for printf statement. void logger(int lvl, char* format, ...) { va_list valist; va_start(valist, format); if(lvl <= _log_level) { if(lvl == LOG_DEBUG) printf("DEBUG: "); if(lvl == LOG_FATAL) printf("FATAL: "); if(lvl == LOG_ERROR) printf("ERROR: "); if(lvl == LOG_ERROR) printf("WARN: "); vprintf(format, valist); } va_end(valist); }