X-Git-Url: http://git.tuebingen.mpg.de/?p=dss.git;a=blobdiff_plain;f=log.h;h=7dd50434313b5acfa9009878089aae785ec27846;hp=e1405150e5e8fa38eeed7ddb5c45f49407e04a58;hb=refs%2Fheads%2Fpu;hpb=c418d2188c9c2c542270023d6fc3bc6cf34f8d29 diff --git a/log.h b/log.h index e140515..47a3b7a 100644 --- a/log.h +++ b/log.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */ /** debug loglevel, gets really noisy */ #define DEBUG 1 @@ -14,48 +15,54 @@ /** last message before exit */ #define EMERG 7 -/** Log messages with lower priority than that will not be compiled in. */ -#define COMPILE_TIME_LOGLEVEL 0 - -/** \cond */ -#if DEBUG > COMPILE_TIME_LOGLEVEL -#define DSS_DEBUG_LOG(f,...) dss_log(DEBUG, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_DEBUG_LOG(...) do {;} while (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 -#if INFO > COMPILE_TIME_LOGLEVEL -#define DSS_INFO_LOG(f,...) dss_log(INFO, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_INFO_LOG(...) do {;} while (0) -#endif +#define DSS_DEBUG_LOG(args) \ + do { \ + dss_log_set_params(DEBUG, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) -#if NOTICE > COMPILE_TIME_LOGLEVEL -#define DSS_NOTICE_LOG(f,...) dss_log(NOTICE, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_NOTICE_LOG(...) do {;} while (0) -#endif +#define DSS_INFO_LOG(args) \ + do { \ + dss_log_set_params(INFO, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) -#if WARNING > COMPILE_TIME_LOGLEVEL -#define DSS_WARNING_LOG(f,...) dss_log(WARNING, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_WARNING_LOG(...) do {;} while (0) -#endif +#define DSS_NOTICE_LOG(args) \ + do { \ + dss_log_set_params(NOTICE, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) -#if ERROR > COMPILE_TIME_LOGLEVEL -#define DSS_ERROR_LOG(f,...) dss_log(ERROR, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_ERROR_LOG(...) do {;} while (0) -#endif +#define DSS_WARNING_LOG(args) \ + do { \ + dss_log_set_params(WARNING, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) -#if CRIT > COMPILE_TIME_LOGLEVEL -#define DSS_CRIT_LOG(f,...) dss_log(CRIT, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_CRIT_LOG(...) do {;} while (0) -#endif +#define DSS_ERROR_LOG(args) \ + do { \ + dss_log_set_params(ERROR, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) -#if EMERG > COMPILE_TIME_LOGLEVEL -#define DSS_EMERG_LOG(f,...) dss_log(EMERG, "%s: " f, __FUNCTION__, ## __VA_ARGS__) -#else -#define DSS_EMERG_LOG(...) -#endif +#define DSS_CRIT_LOG(args) \ + do { \ + dss_log_set_params(CRIT, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0) + +#define DSS_EMERG_LOG(args) \ + do { \ + dss_log_set_params(EMERG, __FILE__, __LINE__, __func__); \ + dss_log args ; \ + } while (0)