Commit dda26fba authored by Ben Walker's avatar Ben Walker Committed by Daniel Verkamp
Browse files

log: Change priority to generic log level



The log priority was very syslog specific. Instead, create
a generic set of log levels as an enum.

The log level/priority isn't actually used anywhere today.

Change-Id: Iebcf6b7e1b263b56f317b86b5f2ea0d9e45170f3
Signed-off-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/365267


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 99cad034
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -41,6 +41,25 @@

#include "spdk/stdinc.h"

enum spdk_log_level {
	SPDK_LOG_ERROR,
	SPDK_LOG_WARN,
	SPDK_LOG_NOTICE,
	SPDK_LOG_INFO,
	SPDK_LOG_DEBUG,
};

/**
 * Set the threshold to log messages. Messages with a higher
 * level than this are ignored.
 */
void spdk_log_set_level(enum spdk_log_level level);

/**
 * Get the current log threshold.
 */
enum spdk_log_level spdk_log_get_level(void);

/*
 * Default: 1 - noticelog messages will print to stderr and syslog.
 * Can be set to 0 to print noticelog messages to syslog only.
@@ -56,7 +75,7 @@ extern unsigned int spdk_g_notice_stderr_flag;

int spdk_set_log_facility(const char *facility);
const char *spdk_get_log_facility(void);
int spdk_set_log_priority(const char *priority);

void spdk_noticelog(const char *file, const int line, const char *func,
		    const char *format, ...) __attribute__((__format__(__printf__, 4, 5)));
void spdk_warnlog(const char *file, const int line, const char *func,
+2 −7
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@
#include "spdk/trace.h"

#define SPDK_APP_DEFAULT_LOG_FACILITY	"local7"
#define SPDK_APP_DEFAULT_LOG_PRIORITY	"info"
#define SPDK_APP_DEFAULT_LOG_PRIORITY	SPDK_LOG_INFO

#define SPDK_APP_DPDK_DEFAULT_MEM_SIZE		-1
#define SPDK_APP_DPDK_DEFAULT_MASTER_CORE	-1
@@ -288,12 +288,7 @@ spdk_app_start(struct spdk_app_opts *opts, spdk_event_fn start_fn,
		exit(EXIT_FAILURE);
	}

	rc = spdk_set_log_priority(SPDK_APP_DEFAULT_LOG_PRIORITY);
	if (rc < 0) {
		SPDK_ERRLOG("log priority error\n");
		spdk_conf_free(g_spdk_app.config);
		exit(EXIT_FAILURE);
	}
	spdk_log_set_level(SPDK_APP_DEFAULT_LOG_PRIORITY);
	spdk_open_log();

	if (opts->reactor_mask == NULL) {
+11 −28
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ static TAILQ_HEAD(, spdk_trace_flag) g_trace_flags = TAILQ_HEAD_INITIALIZER(g_tr

unsigned int spdk_g_notice_stderr_flag = 1;
int spdk_g_log_facility = LOG_DAEMON;
unsigned int spdk_g_log_priority = LOG_NOTICE;
static enum spdk_log_level g_spdk_log_level = SPDK_LOG_NOTICE;

SPDK_LOG_REGISTER_TRACE_FLAG("debug", SPDK_TRACE_DEBUG)

@@ -79,17 +79,16 @@ static const struct syslog_code facilitynames[] = {
	{ NULL,		-1,		}
};

static const struct syslog_code prioritynames[] = {
	{ "alert",	LOG_ALERT,	},
	{ "crit",	LOG_CRIT,	},
	{ "debug",	LOG_DEBUG,	},
	{ "emerg",	LOG_EMERG,	},
	{ "err",	LOG_ERR,	},
	{ "info",	LOG_INFO,	},
	{ "notice",	LOG_NOTICE,	},
	{ "warning",	LOG_WARNING,	},
	{ NULL,		-1,		}
};
void
spdk_log_set_level(enum spdk_log_level level)
{
	g_spdk_log_level = level;
}

enum spdk_log_level
spdk_log_get_level(void) {
	return g_spdk_log_level;
}

int
spdk_set_log_facility(const char *facility)
@@ -124,22 +123,6 @@ spdk_get_log_facility(void)
	return def_name;
}

int
spdk_set_log_priority(const char *priority)
{
	int i;

	for (i = 0; prioritynames[i].c_name != NULL; i++) {
		if (strcasecmp(prioritynames[i].c_name, priority) == 0) {
			spdk_g_log_priority = prioritynames[i].c_val;
			return 0;
		}
	}

	spdk_g_log_priority = LOG_NOTICE;
	return -1;
}

void
spdk_noticelog(const char *file, const int line, const char *func,
	       const char *format, ...)
+10 −6
Original line number Diff line number Diff line
@@ -60,12 +60,16 @@ log_test(void)
	SPDK_CU_ASSERT_FATAL(buf != NULL);
	CU_ASSERT_STRING_EQUAL(buf, "local7");

	rc = spdk_set_log_priority("test");
	CU_ASSERT(rc == -1);
	CU_ASSERT_EQUAL(spdk_g_log_priority, LOG_NOTICE);
	rc = spdk_set_log_priority("debug");
	CU_ASSERT(rc == 0);
	CU_ASSERT_EQUAL(spdk_g_log_priority, LOG_DEBUG);
	spdk_log_set_level(SPDK_LOG_ERROR);
	CU_ASSERT_EQUAL(spdk_log_get_level(), SPDK_LOG_ERROR);
	spdk_log_set_level(SPDK_LOG_WARN);
	CU_ASSERT_EQUAL(spdk_log_get_level(), SPDK_LOG_WARN);
	spdk_log_set_level(SPDK_LOG_NOTICE);
	CU_ASSERT_EQUAL(spdk_log_get_level(), SPDK_LOG_NOTICE);
	spdk_log_set_level(SPDK_LOG_INFO);
	CU_ASSERT_EQUAL(spdk_log_get_level(), SPDK_LOG_INFO);
	spdk_log_set_level(SPDK_LOG_DEBUG);
	CU_ASSERT_EQUAL(spdk_log_get_level(), SPDK_LOG_DEBUG);

#ifdef DEBUG
	CU_ASSERT(spdk_log_get_trace_flag("debug") == false);