summaryrefslogtreecommitdiffstats
path: root/src/vty
diff options
context:
space:
mode:
Diffstat (limited to 'src/vty')
-rw-r--r--src/vty/logging_vty.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c
index b785be4c..243d6ebd 100644
--- a/src/vty/logging_vty.c
+++ b/src/vty/logging_vty.c
@@ -991,6 +991,44 @@ void logging_vty_add_deprecated_subsys(void *ctx, const char *name)
install_element(CFG_LOG_NODE, cmd);
}
+/* logp (<categories>) (debug|...|fatal) .LOGMESSAGE*/
+DEFUN(vty_logp,
+ vty_logp_cmd,
+ NULL, /* cmdstr is dynamically set in gen_vty_logp_cmd_strs(). */
+ NULL) /* same thing for helpstr. */
+{
+ int category = log_parse_category(argv[0]);
+ int level = log_parse_level(argv[1]);
+ char *str = argv_concat(argv, argc, 2);
+ LOGP(category, level, "%s\n", str);
+ return CMD_SUCCESS;
+}
+
+static void gen_vty_logp_cmd_strs(struct cmd_element *cmd)
+{
+ char *cmd_str = NULL;
+ char *doc_str = NULL;
+
+ assert_loginfo(__func__);
+
+ OSMO_ASSERT(cmd->string == NULL);
+ OSMO_ASSERT(cmd->doc == NULL);
+
+ osmo_talloc_asprintf(tall_log_ctx, cmd_str, "logp (");
+ osmo_talloc_asprintf(tall_log_ctx, doc_str,
+ "Print a message on all log outputs; useful for placing markers in test logs\n");
+ add_category_strings(&cmd_str, &doc_str, osmo_log_info);
+ osmo_talloc_asprintf(tall_log_ctx, cmd_str, ") %s", LOG_LEVEL_ARGS);
+ osmo_talloc_asprintf(tall_log_ctx, doc_str, "%s", LOG_LEVEL_STRS);
+
+ osmo_talloc_asprintf(tall_log_ctx, cmd_str, " .LOGMESSAGE");
+ osmo_talloc_asprintf(tall_log_ctx, doc_str,
+ "Arbitrary message to log on given category and log level\n");
+
+ cmd->string = cmd_str;
+ cmd->doc = doc_str;
+}
+
/*! Register logging related commands to the VTY. Call this once from
* your application if you want to support those commands. */
void logging_vty_add_cmds()
@@ -1026,6 +1064,9 @@ void logging_vty_add_cmds()
install_element_ve(&show_logging_vty_cmd);
install_element_ve(&show_alarms_cmd);
+ gen_vty_logp_cmd_strs(&vty_logp_cmd);
+ install_element_ve(&vty_logp_cmd);
+
install_node(&cfg_log_node, config_write_log);
install_element(CFG_LOG_NODE, &logging_fltr_all_cmd);
install_element(CFG_LOG_NODE, &logging_use_clr_cmd);