/* eurephia_log.h -- eurephia logging module * * GPLv2 only - Copyright (C) 2008 * David Sommerseth * * 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; version 2 * of the License. * * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ /** * @file eurephia_log.h * @author David Sommerseth * @date 2008-08-06 * * @brief Function for unified logging * */ #ifndef EUREPHIA_LOG_H_ #define EUREPHIA_LOG_H_ #include #define LOG_INFO 1 /**< Informational messages. Log level should be < 5 */ #define LOG_DEBUG 2 /**< Messages intended when debugging. Only for log level > 10 */ #define LOG_WARNING 3 /**< Input data or processing revealed unexpected data. Log level never > 2*/ #define LOG_ERROR 4 /**< API errors but not sever, program can continue to run */ #define LOG_CRITICAL 5 /**< Operation failed and might have been aborted. Log level always 0 */ #define LOG_FATAL 6 /**< Operation failed and cannot continue. Log level always < 2 */ #define LOG_PANIC 7 /**< Action failed an program could not continue to run. Log level always 0 */ #ifdef ENABLE_DEBUG #warning ###### DEBUG LOGGING IS ENABLED - THIS COULD BE A SECURITY ISSUE ###### /** * Wrapper function for DEBUG statements. This is used to avoid adding debug code into the compiled * binary if debug logging is not enabled at compile time. This will always use the LOG_DEBUG target * when calling eurephia_log(). */ #define DEBUG(ctx, log_level, log_string...) eurephia_log(ctx, LOG_DEBUG, log_level, ## log_string); #else #define DEBUG(ctx, lvl, rest...) {}; #endif #ifdef SHOW_SECRETS #warning ########################################################################################## #warning ## ## #warning ## DEBUG LOGGING WITH SHOW_SECRETS IS ENABLED - THIS WILL LOG PASSWORDS IN CLEAR TEXT ## #warning ## ## #warning ########################################################################################## #endif void eurephia_log(eurephiaCTX *ctx, int logdst, int loglvl, const char *fmt, ... ); #endif /* !EUREPHIA_LOG_H_ */