logging vty: deprecate the 'everything' keyword

The 'logging level all everything' has not had an effect for some time now. The
plan is to bring back its old functionality, but to keep it deprecated and
rather define a less confusing name.

* Deprecate 'everything'.
* Do not write 'everything' during 'write file' or 'show running-config', which
  we curiously still do until now.

BTW, the reason why we need to compose a complete list of categories for the
deprecated 'everything' command is explained in detail in the commit log for
I3b083f27e3d751ccec258880ae7676e9af959a63

Change-Id: Ib75fedb0572570a61bb34ee729a2af86cf5f16da
This commit is contained in:
Neels Hofmeyr 2018-09-10 20:58:52 +02:00 committed by Neels Hofmeyr
parent ba0762d6cb
commit 7e0686c6b4
3 changed files with 35 additions and 30 deletions

View File

@ -64,7 +64,6 @@ void *tall_log_ctx = NULL;
LLIST_HEAD(osmo_log_target_list);
static const struct value_string loglevel_strs[] = {
{ 0, "EVERYTHING" },
{ LOGL_DEBUG, "DEBUG" },
{ LOGL_INFO, "INFO" },
{ LOGL_NOTICE, "NOTICE" },

View File

@ -320,7 +320,7 @@ static void gen_logging_level_cmd_strs(struct cmd_element *cmd,
cmd->doc = doc_str;
}
/* logging level (all|<categories>) (everything|debug|...|fatal) */
/* logging level (all|<categories>) (debug|...|fatal) */
DEFUN(logging_level,
logging_level_cmd,
NULL, /* cmdstr is dynamically set in logging_vty_add_cmds(). */
@ -338,11 +338,6 @@ DEFUN(logging_level,
return CMD_WARNING;
}
if (strcmp(argv[1], "everything") == 0) { /* FIXME: remove this check once 'everything' is phased out */
vty_out(vty, "%% Ignoring deprecated logging level %s%s", argv[1], VTY_NEWLINE);
return CMD_SUCCESS;
}
/* Check for special case where we want to set global log level */
if (!strcmp(argv[0], "all")) {
log_set_log_level(tgt, level);
@ -360,6 +355,15 @@ DEFUN(logging_level,
return CMD_SUCCESS;
}
/* logging level (all|<categories>) everything */
DEFUN_DEPRECATED(deprecated_logging_level_everything, deprecated_logging_level_everything_cmd,
NULL, /* cmdstr is dynamically set in logging_vty_add_cmds(). */
NULL) /* same thing for helpstr. */
{
vty_out(vty, "%% Ignoring deprecated logging level 'everything' keyword%s", VTY_NEWLINE);
return CMD_SUCCESS;
}
DEFUN(logging_set_category_mask,
logging_set_category_mask_cmd,
"logging set-log-mask MASK",
@ -858,8 +862,9 @@ static int config_write_log_single(struct vty *vty, struct log_target *tgt)
VTY_NEWLINE);
/* stupid old osmo logging API uses uppercase strings... */
vty_out(vty, " logging level all %s%s", osmo_str_tolower(log_level_str(tgt->loglevel)),
VTY_NEWLINE);
if (tgt->loglevel)
vty_out(vty, " logging level all %s%s", osmo_str_tolower(log_level_str(tgt->loglevel)),
VTY_NEWLINE);
for (i = 0; i < osmo_log_info->num_cat; i++) {
const struct log_category *cat = &tgt->categories[i];
@ -896,7 +901,7 @@ void logging_vty_add_deprecated_subsys(void *ctx, const char *name)
{
struct cmd_element *cmd = talloc_zero(ctx, struct cmd_element);
OSMO_ASSERT(cmd);
cmd->string = talloc_asprintf(cmd, "logging level %s (everything|debug|info|notice|error|fatal)",
cmd->string = talloc_asprintf(cmd, "logging level %s (debug|info|notice|error|fatal)",
name);
printf("%s\n", cmd->string);
cmd->func = log_deprecated_func;
@ -924,12 +929,16 @@ void logging_vty_add_cmds()
install_element_ve(&logging_set_category_mask_cmd);
install_element_ve(&logging_set_category_mask_old_cmd);
/* logging level (all|<categories>) (everything|debug|...|fatal) */
/* logging level (all|<categories>) (debug|...|fatal) */
gen_logging_level_cmd_strs(&logging_level_cmd,
"(everything|" LOG_LEVEL_ARGS ")",
EVERYTHING_STR LOG_LEVEL_STRS);
"(" LOG_LEVEL_ARGS ")",
LOG_LEVEL_STRS);
/* logging level (all|<categories>) everything */
gen_logging_level_cmd_strs(&deprecated_logging_level_everything_cmd,
"everything", EVERYTHING_STR);
install_element_ve(&logging_level_cmd);
install_element_ve(&deprecated_logging_level_everything_cmd);
install_element_ve(&show_logging_vty_cmd);
install_element_ve(&show_alarms_cmd);
@ -943,6 +952,7 @@ void logging_vty_add_cmds()
install_element(CFG_LOG_NODE, &logging_prnt_level_cmd);
install_element(CFG_LOG_NODE, &logging_prnt_file_cmd);
install_element(CFG_LOG_NODE, &logging_level_cmd);
install_element(CFG_LOG_NODE, &deprecated_logging_level_everything_cmd);
install_element(CONFIG_NODE, &cfg_log_stderr_cmd);
install_element(CONFIG_NODE, &cfg_no_log_stderr_cmd);

View File

@ -1,11 +1,9 @@
logging_vty_test> enable
logging_vty_test# ! Note that 'logging level all everything' is still printed!
logging_vty_test# show running-config
...
log stderr
...
logging level all everything
... !logging level all
logging level aa debug
logging level bb info
logging level ccc notice
@ -39,7 +37,7 @@ logging_vty_test# list
logging print level (0|1)
logging print file (0|1|basename) [last]
logging set-log-mask MASK
logging level (all|aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf) (everything|debug|info|notice|error|fatal)
logging level (all|aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf) (debug|info|notice|error|fatal)
show logging vty
... !logging
@ -64,20 +62,18 @@ logging_vty_test# logging level ?
...
logging_vty_test# logging level aa ?
everything Don't use. It doesn't log anything
debug Log debug messages and higher levels
info Log informational messages and higher levels
notice Log noticeable messages and higher levels
error Log error messages and higher levels
fatal Log only fatal messages
debug Log debug messages and higher levels
info Log informational messages and higher levels
notice Log noticeable messages and higher levels
error Log error messages and higher levels
fatal Log only fatal messages
logging_vty_test# logging level all ?
everything Don't use. It doesn't log anything
debug Log debug messages and higher levels
info Log informational messages and higher levels
notice Log noticeable messages and higher levels
error Log error messages and higher levels
fatal Log only fatal messages
debug Log debug messages and higher levels
info Log informational messages and higher levels
notice Log noticeable messages and higher levels
error Log error messages and higher levels
fatal Log only fatal messages
logging_vty_test# log-sweep
@ -181,7 +177,7 @@ DEEE FATAL Log message for DEEE on level LOGL_FATAL
logging_vty_test# ! Old 'logging level all everything' has no effect
logging_vty_test# logging level all everything
% Ignoring deprecated logging level everything
% Ignoring deprecated logging level 'everything' keyword
logging_vty_test# log-sweep eee
DEEE NOTICE Log message for DEEE on level LOGL_NOTICE
DEEE ERROR Log message for DEEE on level LOGL_ERROR