diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-09-04 14:40:14 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-09-07 09:43:13 +0200 |
commit | 3e56dc3fc7ce31cb932fbd86e78eea02049d0b7e (patch) | |
tree | 881ac38436617b38301cd067af94eebd7cae35ea /include/afb/afb-binding-v2.h | |
parent | b355a2a65511c32aaaddf289d70395f872bd4b26 (diff) |
Improve handling of verbosity in bindings
The macro AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO is removed.
The macro AFB_BINDING_PRAGMA_NO_VERBOSE_UNPREFIX is removed.
The macro AFB_BINDING_PRAGMA_KEEP_VERBOSE_UNPREFIX is now used to
activate the weakly named verbose macros DEBUG, INFO, NOTICE,
WARNING, ERROR.
The macros AFB_BINDING_PRAGMA_NO_VERBOSE_DATA and
AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS can be used to tune what
verbose parts are to be emitted:
If AFB_BINDING_PRAGMA_NO_VERBOSE_DATA is defined then the macro
will only report the file and the line that emitted the message.
This mode is intended to reduce the count of static data plugin
the binary.
If AFB_BINDING_PRAGMA_NO_VERBOSE_DATA is not defined and
AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS is defined, this is the opposite:
the messages are emitted but not the file, line and function.
When none of these 2 are difened, everything is emitted: the message
and the details.
Change-Id: Ibb83cd435797fadf90626cb06bbda77f0f8b3cde
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'include/afb/afb-binding-v2.h')
-rw-r--r-- | include/afb/afb-binding-v2.h | 66 |
1 files changed, 43 insertions, 23 deletions
diff --git a/include/afb/afb-binding-v2.h b/include/afb/afb-binding-v2.h index 8831a434..4780b4ef 100644 --- a/include/afb/afb-binding-v2.h +++ b/include/afb/afb-binding-v2.h @@ -92,43 +92,63 @@ struct afb_binding_data_v2 AFB_BINDING_DATA_NAME_V2 __attribute__ ((weak)); /* * Macros for logging messages */ -#if !defined(AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO) -# if !defined(AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS) -# define _AFB_LOGGING_V2_(vlevel,llevel,...) \ +#if defined(AFB_BINDING_PRAGMA_NO_VERBOSE_DATA) + +# define _AFB_LOGGING_V2_(vlevel,llevel,...) \ do{ \ - if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) \ - afb_daemon_verbose_v2(llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ + if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) {\ + if (llevel <= AFB_VERBOSITY_LEVEL_ERROR) \ + afb_daemon_verbose_v2(llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ + else \ + afb_daemon_verbose_v2(llevel,__FILE__,__LINE__,NULL,NULL); \ + } \ }while(0) -# define _AFB_REQ_LOGGING_V2_(vlevel,llevel,req,...) \ +# define _AFB_REQ_LOGGING_V2_(vlevel,llevel,req,...) \ do{ \ if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) \ - afb_req_verbose(req,llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ + afb_req_verbose(req,llevel,__FILE__,__LINE__,NULL,NULL); \ }while(0) -# else -# define _AFB_LOGGING_V2_(vlevel,llevel,...) \ + +#elif defined(AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS) + +# define _AFB_LOGGING_V2_(vlevel,llevel,...) \ do{ \ - if(afbBindingV2data.verbosity>=vlevel) \ + if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) \ afb_daemon_verbose_v2(llevel,NULL,0,NULL,__VA_ARGS__); \ }while(0) -# define _AFB_REQ_LOGGING_V2_(vlevel,llevel,req,...) \ +# define _AFB_REQ_LOGGING_V2_(vlevel,llevel,req,...) \ do{ \ if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) \ afb_req_verbose(req,llevel,NULL,0,NULL,__VA_ARGS__); \ }while(0) -# endif -# include "afb-verbosity.h" -# define AFB_ERROR_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_ERROR,_AFB_SYSLOG_LEVEL_ERROR_,__VA_ARGS__) -# define AFB_WARNING_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_WARNING,_AFB_SYSLOG_LEVEL_WARNING_,__VA_ARGS__) -# define AFB_NOTICE_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_NOTICE,_AFB_SYSLOG_LEVEL_NOTICE_,__VA_ARGS__) -# define AFB_INFO_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_INFO,_AFB_SYSLOG_LEVEL_INFO_,__VA_ARGS__) -# define AFB_DEBUG_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_DEBUG,_AFB_SYSLOG_LEVEL_DEBUG_,__VA_ARGS__) -# define AFB_REQ_ERROR_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_ERROR,_AFB_SYSLOG_LEVEL_ERROR_,__VA_ARGS__) -# define AFB_REQ_WARNING_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_WARNING,_AFB_SYSLOG_LEVEL_WARNING_,__VA_ARGS__) -# define AFB_REQ_NOTICE_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_NOTICE,_AFB_SYSLOG_LEVEL_NOTICE_,__VA_ARGS__) -# define AFB_REQ_INFO_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_INFO,_AFB_SYSLOG_LEVEL_INFO_,__VA_ARGS__) -# define AFB_REQ_DEBUG_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_DEBUG,_AFB_SYSLOG_LEVEL_DEBUG_,__VA_ARGS__) + +#else + +# define _AFB_LOGGING_V2_(vlevel,llevel,...) \ + do{ \ + if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) \ + afb_daemon_verbose_v2(llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ + }while(0) +# define _AFB_REQ_LOGGING_V2_(vlevel,llevel,req,...) \ + do{ \ + if(AFB_BINDING_DATA_NAME_V2.verbosity>=vlevel) \ + afb_req_verbose(req,llevel,__FILE__,__LINE__,__func__,__VA_ARGS__); \ + }while(0) + #endif +#include "afb-verbosity.h" +#define AFB_ERROR_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_ERROR,_AFB_SYSLOG_LEVEL_ERROR_,__VA_ARGS__) +#define AFB_WARNING_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_WARNING,_AFB_SYSLOG_LEVEL_WARNING_,__VA_ARGS__) +#define AFB_NOTICE_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_NOTICE,_AFB_SYSLOG_LEVEL_NOTICE_,__VA_ARGS__) +#define AFB_INFO_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_INFO,_AFB_SYSLOG_LEVEL_INFO_,__VA_ARGS__) +#define AFB_DEBUG_V2(...) _AFB_LOGGING_V2_(AFB_VERBOSITY_LEVEL_DEBUG,_AFB_SYSLOG_LEVEL_DEBUG_,__VA_ARGS__) +#define AFB_REQ_ERROR_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_ERROR,_AFB_SYSLOG_LEVEL_ERROR_,__VA_ARGS__) +#define AFB_REQ_WARNING_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_WARNING,_AFB_SYSLOG_LEVEL_WARNING_,__VA_ARGS__) +#define AFB_REQ_NOTICE_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_NOTICE,_AFB_SYSLOG_LEVEL_NOTICE_,__VA_ARGS__) +#define AFB_REQ_INFO_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_INFO,_AFB_SYSLOG_LEVEL_INFO_,__VA_ARGS__) +#define AFB_REQ_DEBUG_V2(...) _AFB_REQ_LOGGING_V2_(AFB_VERBOSITY_LEVEL_DEBUG,_AFB_SYSLOG_LEVEL_DEBUG_,__VA_ARGS__) + #include "afb-daemon-v2.h" #include "afb-service-v2.h" |