summaryrefslogtreecommitdiff
path: root/lib/command.c
diff options
context:
space:
mode:
authorLou Berger <lberger@labn.net>2018-06-22 13:13:05 -0400
committerGitHub <noreply@github.com>2018-06-22 13:13:05 -0400
commitec446a4673631437823065eb47672549e3be9766 (patch)
tree5aa01d0a9f2162ff4f727413773544b1a56087d4 /lib/command.c
parent0a8990d5f889113659abba6b61988244a07b2b81 (diff)
parent3cf3e018a916254b03b5685bd6da557daa53e4c6 (diff)
Merge pull request #2449 from donaldsharp/lib_delayed_read
Lib delayed read
Diffstat (limited to 'lib/command.c')
-rw-r--r--lib/command.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/command.c b/lib/command.c
index a8e61c6bb4..4ab47e5fc2 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -2429,7 +2429,8 @@ static int set_log_file(struct vty *vty, const char *fname, int loglevel)
XFREE(MTYPE_TMP, p);
if (!ret) {
- vty_out(vty, "can't open logfile %s\n", fname);
+ if (vty)
+ vty_out(vty, "can't open logfile %s\n", fname);
return CMD_WARNING_CONFIG_FAILED;
}
@@ -2445,6 +2446,36 @@ static int set_log_file(struct vty *vty, const char *fname, int loglevel)
return CMD_SUCCESS;
}
+void command_setup_early_logging(const char *dest, const char *level)
+{
+ char *token;
+
+ if (level) {
+ int nlevel = level_match(level);
+
+ if (nlevel != ZLOG_DISABLED)
+ zlog_default->default_lvl = nlevel;
+ }
+
+ if (!dest)
+ return;
+
+ if (strcmp(dest, "stdout") == 0) {
+ zlog_set_level(ZLOG_DEST_STDOUT, zlog_default->default_lvl);
+ return;
+ }
+
+ if (strcmp(dest, "syslog") == 0) {
+ zlog_set_level(ZLOG_DEST_SYSLOG, zlog_default->default_lvl);
+ return;
+ }
+
+ token = strstr(dest, ":");
+ token++;
+
+ set_log_file(NULL, token, zlog_default->default_lvl);
+}
+
DEFUN (config_log_file,
config_log_file_cmd,
"log file FILENAME [<emergencies|alerts|critical|errors|warnings|notifications|informational|debugging>]",