diff options
-rw-r--r-- | src/vty/logging_vty.c | 41 | ||||
-rw-r--r-- | tests/logging/logging_vty_test.vty | 53 |
2 files changed, 94 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); diff --git a/tests/logging/logging_vty_test.vty b/tests/logging/logging_vty_test.vty index 895d2bc1..d77f8ce4 100644 --- a/tests/logging/logging_vty_test.vty +++ b/tests/logging/logging_vty_test.vty @@ -468,3 +468,56 @@ DCCC FATAL Log message for DCCC on level LOGL_FATAL DDDDD ERROR Log message for DDDDD on level LOGL_ERROR DDDDD FATAL Log message for DDDDD on level LOGL_FATAL DEEE FATAL Log message for DEEE on level LOGL_FATAL + +logging_vty_test# list +... + logp (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf|lrspro) (debug|info|notice|error|fatal) .LOGMESSAGE +... + +logging_vty_test# logp? + logp Print a message on all log outputs; useful for placing markers in test logs + +logging_vty_test# logp ? + aa Antropomorphic Armadillos (AA) + bb Bidirectional Breadspread (BB) + ccc Chaos Communication Congress (CCC) + dddd Dehydrated Dribbling Duck Dunkers (DDDD) + eee Exhaustive Entropy Extraction (EEE) + lglobal Library-internal global log family + llapd LAPD in libosmogsm + linp A-bis Intput Subsystem + lmux A-bis B-Subchannel TRAU Frame Multiplex + lmi A-bis Input Driver for Signalling + lmib A-bis Input Driver for B-Channels (voice) + lsms Layer3 Short Message Service (SMS) + lctrl Control Interface + lgtp GPRS GTP library + lstats Statistics messages and logging + lgsup Generic Subscriber Update Protocol + loap Osmocom Authentication Protocol + lss7 libosmo-sigtran Signalling System 7 + lsccp libosmo-sigtran SCCP Implementation + lsua libosmo-sigtran SCCP User Adaptation + lm3ua libosmo-sigtran MTP3 User Adaptation + lmgcp libosmo-mgcp Media Gateway Control Protocol + ljibuf libosmo-netif Jitter Buffer + lrspro Remote SIM protocol + +logging_vty_test# logp lglobal ? + 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# logp lglobal info ? + LOGMESSAGE Arbitrary message to log on given category and log level + +logging_vty_test# logging level set-all notice + +logging_vty_test# logp aa error This is the log message +DAA ERROR This is the log message + +logging_vty_test# logp lglobal debug This log message is not echoed +logging_vty_test# logp lglobal notice This log message is echoed +DLGLOBAL NOTICE This log message is echoed |