From 257734a1e1891e04d3adb4acd945ef9e63df02ae Mon Sep 17 00:00:00 2001 From: Vitaliy Mysak Date: Mon, 20 Apr 2020 18:42:48 +0200 Subject: [PATCH] module/ocf: improve logging callback Change OCF logger callback to use spdk_vlog interface, instead of manually deciding log level and printing messages to a FILE. This allows user to modify logging preferences for OCF without modifying our OCF code. Change-Id: Ibe526c97965acb9a5e9816446354e3a200d0cc31 Signed-off-by: Vitaliy Mysak Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1947 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Darek Stojaczyk --- module/bdev/ocf/ctx.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/module/bdev/ocf/ctx.c b/module/bdev/ocf/ctx.c index a3efac078..cc86d8aec 100644 --- a/module/bdev/ocf/ctx.c +++ b/module/bdev/ocf/ctx.c @@ -477,17 +477,31 @@ static int vbdev_ocf_ctx_log_printf(ocf_logger_t logger, ocf_logger_lvl_t lvl, const char *fmt, va_list args) { - FILE *lfile = stdout; + int spdk_lvl; - if (lvl > log_info) { - return 0; + switch (lvl) { + case log_emerg: + case log_alert: + case log_crit: + case log_err: + spdk_lvl = SPDK_LOG_ERROR; + break; + + case log_warn: + spdk_lvl = SPDK_LOG_WARN; + break; + + case log_notice: + spdk_lvl = SPDK_LOG_NOTICE; + break; + + case log_info: + case log_debug: + spdk_lvl = SPDK_LOG_INFO; } - if (lvl <= log_warn) { - lfile = stderr; - } - - return vfprintf(lfile, fmt, args); + spdk_vlog(spdk_lvl, NULL, -1, NULL, fmt, args); + return 0; } static const struct ocf_ctx_config vbdev_ocf_ctx_cfg = {