X-Git-Url: http://git.tuebingen.mpg.de/?p=dss.git;a=blobdiff_plain;f=log.h;h=7dd50434313b5acfa9009878089aae785ec27846;hp=86ae0f398c48fa78ac3d99e6212fb9d9ea0711a0;hb=HEAD;hpb=00e72666c12061e55c020a706448fac5497ce940 diff --git a/log.h b/log.h index 86ae0f3..7dd5043 100644 --- a/log.h +++ b/log.h @@ -1,8 +1,4 @@ -/* - * Copyright (C) 1997-2008 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* SPDX-License-Identifier: GPL-2.0 */ /** debug loglevel, gets really noisy */ #define DEBUG 1 @@ -22,45 +18,83 @@ /** Log messages with lower priority than that will not be compiled in. */ #define COMPILE_TIME_LOGLEVEL 0 +/** Not all compilers support __func__ or an equivalent. */ +#if (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) && !defined(__GNUC__) +# if defined(_MSC_VER) && _MSC_VER >= 1300 +# define __func__ __FUNCTION__ +# else +# define DSS_NO_FUNC_NAMES +# define __func__ "" +# endif +#endif + /** \cond */ #if DEBUG > COMPILE_TIME_LOGLEVEL -#define DSS_DEBUG_LOG(f,...) dss_log(DEBUG, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_DEBUG_LOG(args) \ + do { \ + dss_log_set_params(DEBUG, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_DEBUG_LOG(...) do {;} while (0) +#define DSS_DEBUG_LOG(args) do {;} while (0) #endif #if INFO > COMPILE_TIME_LOGLEVEL -#define DSS_INFO_LOG(f,...) dss_log(INFO, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_INFO_LOG(args) \ + do { \ + dss_log_set_params(INFO, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_INFO_LOG(...) do {;} while (0) +#define DSS_INFO_LOG(args) do {;} while (0) #endif #if NOTICE > COMPILE_TIME_LOGLEVEL -#define DSS_NOTICE_LOG(f,...) dss_log(NOTICE, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_NOTICE_LOG(args) \ + do { \ + dss_log_set_params(NOTICE, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_NOTICE_LOG(...) do {;} while (0) +#define DSS_NOTICE_LOG(args) do {;} while (0) #endif #if WARNING > COMPILE_TIME_LOGLEVEL -#define DSS_WARNING_LOG(f,...) dss_log(WARNING, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_WARNING_LOG(args) \ + do { \ + dss_log_set_params(WARNING, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_WARNING_LOG(...) do {;} while (0) +#define DSS_WARNING_LOG(args) do {;} while (0) #endif #if ERROR > COMPILE_TIME_LOGLEVEL -#define DSS_ERROR_LOG(f,...) dss_log(ERROR, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_ERROR_LOG(args) \ + do { \ + dss_log_set_params(ERROR, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_ERROR_LOG(...) do {;} while (0) +#define DSS_ERROR_LOG(args) do {;} while (0) #endif #if CRIT > COMPILE_TIME_LOGLEVEL -#define DSS_CRIT_LOG(f,...) dss_log(CRIT, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_CRIT_LOG(args) \ + do { \ + dss_log_set_params(CRIT, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_CRIT_LOG(...) do {;} while (0) +#define DSS_CRIT_LOG(args) do {;} while (0) #endif #if EMERG > COMPILE_TIME_LOGLEVEL -#define DSS_EMERG_LOG(f,...) dss_log(EMERG, "%s: " f, __FUNCTION__, ## __VA_ARGS__) +#define DSS_EMERG_LOG(args) \ + do { \ + dss_log_set_params(EMERG, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) #else -#define DSS_EMERG_LOG(...) +#define DSS_EMERG_LOG(args) #endif