return CMD_SUCCESS;
}
-void command_setup_early_logging(const char *option)
+void command_setup_early_logging(const char *dest, const char *level)
{
char *token;
- if (strcmp(option, "stdout") == 0) {
+ 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(option, "syslog") == 0) {
+ if (strcmp(dest, "syslog") == 0) {
zlog_set_level(ZLOG_DEST_SYSLOG, zlog_default->default_lvl);
return;
}
- token = strstr(option, ":");
+ token = strstr(dest, ":");
token++;
set_log_file(NULL, token, zlog_default->default_lvl);
#define OPTION_VTYSOCK 1000
#define OPTION_MODULEDIR 1002
-#define OPTION_LOG 1003
+#define OPTION_LOG 1003
+#define OPTION_LOGLEVEL 1004
static const struct option lo_always[] = {
{"help", no_argument, NULL, 'h'},
{"vty_socket", required_argument, NULL, OPTION_VTYSOCK},
{"moduledir", required_argument, NULL, OPTION_MODULEDIR},
{"log", required_argument, NULL, OPTION_LOG},
+ {"log-level", required_argument, NULL, OPTION_LOGLEVEL},
{NULL}};
static const struct optspec os_always = {
"hvdM:",
" -M, --module Load specified module\n"
" --vty_socket Override vty socket path\n"
" --moduledir Override modules directory\n"
- " --log Set Logging to stdout, syslog, or file:<name>\n",
+ " --log Set Logging to stdout, syslog, or file:<name>\n"
+ " --log-level Set Logging Level to use, debug, info, warn, etc\n",
lo_always};
case OPTION_LOG:
di->early_logging = optarg;
break;
+ case OPTION_LOGLEVEL:
+ di->early_loglevel = optarg;
+ break;
default:
return 1;
}
openzlog(di->progname, di->logname, di->instance,
LOG_CONS | LOG_NDELAY | LOG_PID, LOG_DAEMON);
- if (di->early_logging)
- command_setup_early_logging(di->early_logging);
+ command_setup_early_logging(di->early_logging, di->early_loglevel);
if (!frr_zclient_addr(&zclient_addr, &zclient_addr_len,
frr_zclientpath)) {