From: Volodymyr Brynza Date: Thu, 9 Mar 2017 14:06:01 +0000 (+0200) Subject: Add dlog target to common murphy logging X-Git-Tag: submit/tizen_3.0/20170518.094523~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F63%2F118263%2F3;p=platform%2Fupstream%2Fmurphy.git Add dlog target to common murphy logging Change-Id: Id48b150bda810c7ea33798a0493f07b56d0e6482 Signed-off-by: Volodymyr Brynza --- diff --git a/src/Makefile.am b/src/Makefile.am index 07be7ea..fa92652 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -130,6 +130,10 @@ webconsole_DATA = \ plugins/console/console.html endif +if DLOG_ENABLED +libmurphy_common_la_CFLAGS += $(DLOG_CFLAGS) -DDLOG_ENABLED +libmurphy_common_la_LIBADD += $(DLOG_LIBS) +endif # linker script generation linker-script.common: $(libmurphy_common_la_HEADERS) diff --git a/src/common/log.c b/src/common/log.c index e35c43a..1e32172 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -34,6 +34,15 @@ #include #include +#ifdef DLOG_ENABLED +#include +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "MURPHY_COMMON" +#define DLOG_TARGET "dlog_common" +#endif + #include #include #include @@ -50,6 +59,9 @@ static log_target_t stderr_target; static log_target_t stdout_target; static log_target_t syslog_target; static log_target_t file_target; +#ifdef DLOG_ENABLED +static log_target_t dlog_target; +#endif static MRP_LIST_HOOK(log_targets); static int log_mask = MRP_LOG_MASK_ERROR; @@ -374,6 +386,34 @@ void mrp_log_msg(mrp_log_level_t level, const char *file, } +#ifdef DLOG_ENABLED +static void log_msg_dlog(void *data, mrp_log_level_t level, const char *file, + int line, const char *func, const char *format, + va_list ap) +{ + va_list cp; + int prio; + char fbuf[1024]; + + MRP_UNUSED(data); + + va_copy(cp, ap); + switch (level) { + case MRP_LOG_ERROR: prio = DLOG_ERROR; break; + case MRP_LOG_WARNING: prio = DLOG_WARN; break; + case MRP_LOG_INFO: prio = DLOG_INFO; break; + case MRP_LOG_DEBUG: prio = DLOG_DEBUG; break; + default: prio = DLOG_INFO; + } + + snprintf(fbuf, sizeof(fbuf), "%s: %s(%d) > %s", file, func, line, format); + dlog_vprint(prio, LOG_TAG, fbuf, cp); + + va_end(cp); +} +#endif + + /* * workaround for not being able to initialize log_fp to stderr */ @@ -404,10 +444,23 @@ static __attribute__((constructor)) void set_default_logging(void) file_target.data = NULL; file_target.builtin = TRUE; +#ifdef DLOG_ENABLED + mrp_list_init(&dlog_target.hook); + dlog_target.name = DLOG_TARGET; + dlog_target.logger = log_msg_dlog; + dlog_target.data = NULL; + dlog_target.builtin = TRUE; + mrp_list_prepend(&log_targets, &dlog_target.hook); +#endif + mrp_list_prepend(&log_targets, &file_target.hook); mrp_list_prepend(&log_targets, &syslog_target.hook); mrp_list_prepend(&log_targets, &stderr_target.hook); mrp_list_prepend(&log_targets, &stdout_target.hook); +#ifdef DLOG_ENABLED + log_target = &dlog_target; +#else log_target = &stderr_target; +#endif } diff --git a/src/common/mm.c b/src/common/mm.c index e047bf9..a1a98a2 100644 --- a/src/common/mm.c +++ b/src/common/mm.c @@ -540,7 +540,7 @@ static void __passthru_free(void *ptr, const char *file, int line, if (mprobe(ptr) == MCHECK_OK) free(ptr); else { - mrp_log_error("Invalid pointer passed to fuction free"); + mrp_log_warning("Invalid pointer passed to fuction free"); } }