X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=blobdiff_plain;f=include%2Fafb%2Fafb-verbosity.h;h=f31abfc6c3386720b3930dae0ce0574d100bc272;hp=1a74654cb8f2f96e32fdb5c232478b63f33743e6;hb=65353dce81a629e042800bb7b86fcd869a76727e;hpb=54f684cd8723a3d7b78a68a6131f3a27fc38f9c6 diff --git a/include/afb/afb-verbosity.h b/include/afb/afb-verbosity.h index 1a74654c..f31abfc6 100644 --- a/include/afb/afb-verbosity.h +++ b/include/afb/afb-verbosity.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016, 2017 "IoT.bzh" + * Copyright (C) 2015-2020 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,15 +17,62 @@ #pragma once -#define AFB_VERBOSITY_LEVEL_ERROR 0 -#define AFB_VERBOSITY_LEVEL_WARNING 1 -#define AFB_VERBOSITY_LEVEL_NOTICE 1 -#define AFB_VERBOSITY_LEVEL_INFO 2 -#define AFB_VERBOSITY_LEVEL_DEBUG 3 +/** @defgroup AFB_LOGGING + * @{ */ -#define _AFB_SYSLOG_LEVEL_ERROR_ 3 -#define _AFB_SYSLOG_LEVEL_WARNING_ 4 -#define _AFB_SYSLOG_LEVEL_NOTICE_ 5 -#define _AFB_SYSLOG_LEVEL_INFO_ 6 -#define _AFB_SYSLOG_LEVEL_DEBUG_ 7 +#define AFB_VERBOSITY_LEVEL_ERROR 0 /**< @deprecated in favor of @ref AFB_SYSLOG_LEVEL_ERROR */ +#define AFB_VERBOSITY_LEVEL_WARNING 1 /**< @deprecated in favor of @ref AFB_SYSLOG_LEVEL_WARNING */ +#define AFB_VERBOSITY_LEVEL_NOTICE 2 /**< @deprecated in favor of @ref AFB_SYSLOG_LEVEL_NOTICE */ +#define AFB_VERBOSITY_LEVEL_INFO 3 /**< @deprecated in favor of @ref AFB_SYSLOG_LEVEL_INFO */ +#define AFB_VERBOSITY_LEVEL_DEBUG 4 /**< @deprecated in favor of @ref AFB_SYSLOG_LEVEL_DEBUG */ +#define AFB_SYSLOG_LEVEL_EMERGENCY 0 +#define AFB_SYSLOG_LEVEL_ALERT 1 +#define AFB_SYSLOG_LEVEL_CRITICAL 2 +#define AFB_SYSLOG_LEVEL_ERROR 3 +#define AFB_SYSLOG_LEVEL_WARNING 4 +#define AFB_SYSLOG_LEVEL_NOTICE 5 +#define AFB_SYSLOG_LEVEL_INFO 6 +#define AFB_SYSLOG_LEVEL_DEBUG 7 + +#define AFB_VERBOSITY_LEVEL_WANT(verbosity,level) ((verbosity) >= (level)) /**< @deprecated in favor of @ref AFB_SYSLOG_MASK_WANT */ + +#define AFB_VERBOSITY_LEVEL_WANT_ERROR(x) AFB_VERBOSITY_LEVEL_WANT(x,AFB_VERBOSITY_LEVEL_ERROR) /**< @deprecated in favor of @ref AFB_SYSLOG_MASK_WANT_ERROR */ +#define AFB_VERBOSITY_LEVEL_WANT_WARNING(x) AFB_VERBOSITY_LEVEL_WANT(x,AFB_VERBOSITY_LEVEL_WARNING) /**< @deprecated in favor of @ref AFB_SYSLOG_MASK_WANT_WARNING */ +#define AFB_VERBOSITY_LEVEL_WANT_NOTICE(x) AFB_VERBOSITY_LEVEL_WANT(x,AFB_VERBOSITY_LEVEL_NOTICE) /**< @deprecated in favor of @ref AFB_SYSLOG_MASK_WANT_NOTICE */ +#define AFB_VERBOSITY_LEVEL_WANT_INFO(x) AFB_VERBOSITY_LEVEL_WANT(x,AFB_VERBOSITY_LEVEL_INFO) /**< @deprecated in favor of @ref AFB_SYSLOG_MASK_WANT_INFO */ +#define AFB_VERBOSITY_LEVEL_WANT_DEBUG(x) AFB_VERBOSITY_LEVEL_WANT(x,AFB_VERBOSITY_LEVEL_DEBUG) /**< @deprecated in favor of @ref AFB_SYSLOG_MASK_WANT_DEBUG */ + +#define AFB_SYSLOG_MASK_WANT(verbomask,level) ((verbomask) & (1 << (level))) + +#define AFB_SYSLOG_MASK_WANT_EMERGENCY(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_EMERGENCY) +#define AFB_SYSLOG_MASK_WANT_ALERT(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_ALERT) +#define AFB_SYSLOG_MASK_WANT_CRITICAL(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_CRITICAL) +#define AFB_SYSLOG_MASK_WANT_ERROR(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_ERROR) +#define AFB_SYSLOG_MASK_WANT_WARNING(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_WARNING) +#define AFB_SYSLOG_MASK_WANT_NOTICE(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_NOTICE) +#define AFB_SYSLOG_MASK_WANT_INFO(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_INFO) +#define AFB_SYSLOG_MASK_WANT_DEBUG(x) AFB_SYSLOG_MASK_WANT(x,AFB_SYSLOG_LEVEL_DEBUG) + +#define AFB_SYSLOG_LEVEL_FROM_VERBOSITY(x) ((x) + (AFB_SYSLOG_LEVEL_ERROR - AFB_VERBOSITY_LEVEL_ERROR)) +#define AFB_SYSLOG_LEVEL_TO_VERBOSITY(x) ((x) + (AFB_VERBOSITY_LEVEL_ERROR - AFB_SYSLOG_LEVEL_ERROR)) + +/** + * Transform a mask of verbosity to its significant level of verbosity. + * + * @param verbomask the mask + * + * @return the upper level that is not null, truncated to AFB_SYSLOG_LEVEL_DEBUG + * + * @example _afb_verbomask_to_upper_level_(5) -> 2 + * @example _afb_verbomask_to_upper_level_(16) -> 4 + */ +static inline int _afb_verbomask_to_upper_level_(int verbomask) +{ + int result = 0; + while ((verbomask >>= 1) && result < AFB_SYSLOG_LEVEL_DEBUG) + result++; + return result; +} + +/** @} */ \ No newline at end of file