From 7c945dff610ae526d536b752becdd1555c0d4bfb Mon Sep 17 00:00:00 2001 From: Mark Stapp Date: Thu, 15 Apr 2021 10:25:30 -0400 Subject: [PATCH] lib: add 'log immediate-mode' cli Add a cli to control immediate-output mode for logs and debugs. Add this to the user docs also. Signed-off-by: Mark Stapp --- doc/user/basic.rst | 6 ++++++ lib/log_vty.c | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/doc/user/basic.rst b/doc/user/basic.rst index 519f30d5e6..2def835f0b 100644 --- a/doc/user/basic.rst +++ b/doc/user/basic.rst @@ -188,6 +188,12 @@ Basic Config Commands This command clears all current filters in the log-filter table. Can be daemon independent. + +.. clicmd:: log immediate-mode + + Use unbuffered output for log and debug messages; normally there is + some internal buffering. + .. clicmd:: service password-encryption Encrypt password. diff --git a/lib/log_vty.c b/lib/log_vty.c index c6788dd35a..9dbf216d31 100644 --- a/lib/log_vty.c +++ b/lib/log_vty.c @@ -647,6 +647,18 @@ DEFPY (show_log_filter, return CMD_SUCCESS; } +/* Enable/disable 'immediate' mode, with no output buffering */ +DEFPY (log_immediate_mode, + log_immediate_mode_cmd, + "[no] log immediate-mode", + NO_STR + "Logging control" + "Output immediately, without buffering") +{ + zlog_set_immediate(!no); + return CMD_SUCCESS; +} + void log_config_write(struct vty *vty) { bool show_cmdline_hint = false; @@ -775,4 +787,5 @@ void log_cmd_init(void) install_element(CONFIG_NODE, &log_filter_clear_cmd); install_element(CONFIG_NODE, &config_log_filterfile_cmd); install_element(CONFIG_NODE, &no_config_log_filterfile_cmd); + install_element(CONFIG_NODE, &log_immediate_mode_cmd); }