From cf07a9fc4fbcd9869ee6df339ece53596a54d873 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 5 Jun 2017 14:50:33 +1200 Subject: Logging improvements --- include/common/log.h | 31 ++++++++++++++++++++++++------- include/wlr/common/log.h | 4 +++- 2 files changed, 27 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/common/log.h b/include/common/log.h index 849f8ef0..b8654b9b 100644 --- a/include/common/log.h +++ b/include/common/log.h @@ -1,18 +1,35 @@ #ifndef _WLR_INTERNAL_COMMON_LOG_H #define _WLR_INTERNAL_COMMON_LOG_H #include +#include +#include #include -void wlr_log_errno(log_importance_t verbosity, char* format, ...) __attribute__((format(printf,2,3))); +#ifdef __GNUC__ +#define ATTRIB_PRINTF(start, end) __attribute__((format(printf, start, end))) +#else +#define ATTRIB_PRINTF(start, end) +#endif + +void _wlr_log(log_importance_t verbosity, const char *format, ...) ATTRIB_PRINTF(2, 3); +void _wlr_vlog(log_importance_t verbosity, const char *format, va_list args) ATTRIB_PRINTF(2, 0); -void wlr_log_errno(log_importance_t verbosity, char* format, ...) __attribute__((format(printf,2,3))); +// Returns a filename relative to wlroots source directory +static inline const char *_relpath(const char *file) { + const char *prefix = WLR_SRC_DIR; + if (strncmp(file, prefix, strlen(prefix)) == 0) { + file += strlen(prefix) + 1; + } + return file; +} -void _wlr_log(const char *filename, int line, log_importance_t verbosity, const char* format, ...) __attribute__((format(printf,4,5))); +#define wlr_log(verb, fmt, ...) \ + _wlr_log(verb, "[%s:%d] " fmt, _relpath(__FILE__), __LINE__, ##__VA_ARGS__) -#define wlr_log(VERBOSITY, FMT, ...) \ - _wlr_log(__FILE__, __LINE__, VERBOSITY, FMT, ##__VA_ARGS__) +#define wlr_vlog(verb, fmt, args) \ + _wlr_vlog(verb, "[%s:%d] " fmt, _relpath(__FILE__), __LINE__, args) -#define wlr_vlog(VERBOSITY, FMT, VA_ARGS) \ - _wlr_vlog(__FILE__, __LINE__, VERBOSITY, FMT, VA_ARGS) +#define wlr_log_errno(verb, fmt, ...) \ + wlr_log(verb, fmt ": %s", ##__VA_ARGS__, strerror(errno)) #endif diff --git a/include/wlr/common/log.h b/include/wlr/common/log.h index 079f989a..c93f9652 100644 --- a/include/wlr/common/log.h +++ b/include/wlr/common/log.h @@ -8,10 +8,12 @@ typedef enum { L_ERROR = 1, L_INFO = 2, L_DEBUG = 3, + L_LAST, } log_importance_t; typedef void (*log_callback_t)(log_importance_t importance, const char *fmt, va_list args); -void init_log(log_callback_t callback); +void wlr_init_log(log_callback_t callback); +void wlr_log_stderr(log_importance_t verbosity, const char *fmt, va_list args); #endif -- cgit v1.2.3 From b537656b4b09717da3255c1ce8121c4becfa9de5 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Mon, 5 Jun 2017 15:09:41 +1200 Subject: Removed inline function --- include/common/log.h | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'include') diff --git a/include/common/log.h b/include/common/log.h index b8654b9b..3fca0dcf 100644 --- a/include/common/log.h +++ b/include/common/log.h @@ -14,20 +14,11 @@ void _wlr_log(log_importance_t verbosity, const char *format, ...) ATTRIB_PRINTF(2, 3); void _wlr_vlog(log_importance_t verbosity, const char *format, va_list args) ATTRIB_PRINTF(2, 0); -// Returns a filename relative to wlroots source directory -static inline const char *_relpath(const char *file) { - const char *prefix = WLR_SRC_DIR; - if (strncmp(file, prefix, strlen(prefix)) == 0) { - file += strlen(prefix) + 1; - } - return file; -} - #define wlr_log(verb, fmt, ...) \ - _wlr_log(verb, "[%s:%d] " fmt, _relpath(__FILE__), __LINE__, ##__VA_ARGS__) + _wlr_log(verb, "[%s:%d] " fmt, __FILE__ + strlen(WLR_SRC_DIR) + 1, __LINE__, ##__VA_ARGS__) #define wlr_vlog(verb, fmt, args) \ - _wlr_vlog(verb, "[%s:%d] " fmt, _relpath(__FILE__), __LINE__, args) + _wlr_vlog(verb, "[%s:%d] " fmt, __FILE__ + strlen(WLR_SRC_DIR) + 1, __LINE__, args) #define wlr_log_errno(verb, fmt, ...) \ wlr_log(verb, fmt ": %s", ##__VA_ARGS__, strerror(errno)) -- cgit v1.2.3