mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 15:17:15 +00:00
lib,vtysh: add per-daemon log file config
Add a config that specifies per-deamon log file names. Move the handy generated list of daemon names from vtysh to lib; edit the gitignore files to match. Signed-off-by: Mark Stapp <mjs@labn.net>
This commit is contained in:
parent
20d0d475cb
commit
31015c3ad9
1
lib/.gitignore
vendored
1
lib/.gitignore
vendored
@ -11,3 +11,4 @@
|
|||||||
/grammar_sandbox
|
/grammar_sandbox
|
||||||
/clippy
|
/clippy
|
||||||
/defun_lex.c
|
/defun_lex.c
|
||||||
|
vtysh_daemons.h
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "lib/lib_errors.h"
|
#include "lib/lib_errors.h"
|
||||||
#include "lib/printfrr.h"
|
#include "lib/printfrr.h"
|
||||||
#include "lib/systemd.h"
|
#include "lib/systemd.h"
|
||||||
|
#include "lib/vtysh_daemons.h"
|
||||||
|
|
||||||
#include "lib/log_vty_clippy.c"
|
#include "lib/log_vty_clippy.c"
|
||||||
|
|
||||||
@ -459,6 +460,70 @@ DEFUN (clear_log_cmdline,
|
|||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Per-daemon log file config */
|
||||||
|
DEFUN (config_log_dmn_file,
|
||||||
|
config_log_dmn_file_cmd,
|
||||||
|
"log daemon " DAEMONS_LIST " file FILENAME [<emergencies|alerts|critical|errors|warnings|notifications|informational|debugging>$levelarg]",
|
||||||
|
"Logging control\n"
|
||||||
|
"Specific daemon\n"
|
||||||
|
DAEMONS_STR
|
||||||
|
"Logging to file\n"
|
||||||
|
"Logging filename\n"
|
||||||
|
LOG_LEVEL_DESC)
|
||||||
|
{
|
||||||
|
int level = log_default_lvl;
|
||||||
|
int idx = 0;
|
||||||
|
const char *d_str;
|
||||||
|
const char *filename;
|
||||||
|
const char *levelarg = NULL;
|
||||||
|
|
||||||
|
d_str = argv[2]->text;
|
||||||
|
|
||||||
|
/* Ignore if not for this daemon */
|
||||||
|
if (!strmatch(d_str, frr_get_progname()))
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
|
if (argv_find(argv, argc, "file", &idx))
|
||||||
|
filename = argv[idx + 1]->arg;
|
||||||
|
else
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
|
if (argc > 5)
|
||||||
|
levelarg = argv[5]->text;
|
||||||
|
|
||||||
|
if (levelarg) {
|
||||||
|
level = log_level_match(levelarg);
|
||||||
|
if (level == ZLOG_DISABLED)
|
||||||
|
return CMD_ERR_NO_MATCH;
|
||||||
|
}
|
||||||
|
return set_log_file(&zt_file, vty, filename, level);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Per-daemon no log file */
|
||||||
|
DEFUN (no_config_log_dmn_file,
|
||||||
|
no_config_log_dmn_file_cmd,
|
||||||
|
"no log daemon " DAEMONS_LIST " file [FILENAME [LEVEL]]",
|
||||||
|
NO_STR
|
||||||
|
"Logging control\n"
|
||||||
|
"Specific daemon\n"
|
||||||
|
DAEMONS_STR
|
||||||
|
"Cancel logging to file\n"
|
||||||
|
"Logging file name\n"
|
||||||
|
"Logging level\n")
|
||||||
|
{
|
||||||
|
const char *d_str;
|
||||||
|
|
||||||
|
d_str = argv[3]->text;
|
||||||
|
|
||||||
|
/* Ignore if not for this daemon */
|
||||||
|
if (!strmatch(d_str, frr_get_progname()))
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
|
||||||
|
zt_file.prio_min = ZLOG_DISABLED;
|
||||||
|
zlog_file_set_other(&zt_file);
|
||||||
|
return CMD_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
DEFPY (config_log_file,
|
DEFPY (config_log_file,
|
||||||
config_log_file_cmd,
|
config_log_file_cmd,
|
||||||
"log file FILENAME [<emergencies|alerts|critical|errors|warnings|notifications|informational|debugging>$levelarg]",
|
"log file FILENAME [<emergencies|alerts|critical|errors|warnings|notifications|informational|debugging>$levelarg]",
|
||||||
@ -904,6 +969,8 @@ void log_cmd_init(void)
|
|||||||
install_element(CONFIG_NODE, &config_log_monitor_cmd);
|
install_element(CONFIG_NODE, &config_log_monitor_cmd);
|
||||||
install_element(CONFIG_NODE, &no_config_log_monitor_cmd);
|
install_element(CONFIG_NODE, &no_config_log_monitor_cmd);
|
||||||
install_element(CONFIG_NODE, &config_log_file_cmd);
|
install_element(CONFIG_NODE, &config_log_file_cmd);
|
||||||
|
install_element(CONFIG_NODE, &config_log_dmn_file_cmd);
|
||||||
|
install_element(CONFIG_NODE, &no_config_log_dmn_file_cmd);
|
||||||
install_element(CONFIG_NODE, &no_config_log_file_cmd);
|
install_element(CONFIG_NODE, &no_config_log_file_cmd);
|
||||||
install_element(CONFIG_NODE, &config_log_syslog_cmd);
|
install_element(CONFIG_NODE, &config_log_syslog_cmd);
|
||||||
install_element(CONFIG_NODE, &no_config_log_syslog_cmd);
|
install_element(CONFIG_NODE, &no_config_log_syslog_cmd);
|
||||||
|
@ -540,12 +540,22 @@ EXTRA_DIST += \
|
|||||||
BUILT_SOURCES += \
|
BUILT_SOURCES += \
|
||||||
lib/gitversion.h \
|
lib/gitversion.h \
|
||||||
lib/route_types.h \
|
lib/route_types.h \
|
||||||
|
lib/vtysh_daemons.h \
|
||||||
# end
|
# end
|
||||||
|
|
||||||
## force route_types.h
|
## force route_types.h
|
||||||
$(lib_clippy_OBJECTS): lib/route_types.h
|
$(lib_clippy_OBJECTS): lib/route_types.h
|
||||||
$(lib_libfrr_la_OBJECTS): lib/route_types.h
|
$(lib_libfrr_la_OBJECTS): lib/route_types.h
|
||||||
|
|
||||||
|
# force lib_daemons.h
|
||||||
|
$(lib_libfrr_la_OBJECTS): lib/vtysh_daemons.h
|
||||||
|
|
||||||
|
CLEANFILES += lib/vtysh_daemons.h
|
||||||
|
lib/vtysh_daemons.h:
|
||||||
|
@$(MKDIR_P) lib
|
||||||
|
$(PERL) $(top_srcdir)/vtysh/daemons.pl $(vtysh_daemons) > lib/vtysh_daemons.h
|
||||||
|
|
||||||
|
|
||||||
AM_YFLAGS = -d -Dapi.prefix=@BISON_OPENBRACE@cmd_yy@BISON_CLOSEBRACE@ @BISON_VERBOSE@
|
AM_YFLAGS = -d -Dapi.prefix=@BISON_OPENBRACE@cmd_yy@BISON_CLOSEBRACE@ @BISON_VERBOSE@
|
||||||
|
|
||||||
lib/command_lex.h: lib/command_lex.c
|
lib/command_lex.h: lib/command_lex.c
|
||||||
|
1
vtysh/.gitignore
vendored
1
vtysh/.gitignore
vendored
@ -1,6 +1,5 @@
|
|||||||
vtysh
|
vtysh
|
||||||
vtysh_cmd.c
|
vtysh_cmd.c
|
||||||
vtysh_daemons.h
|
|
||||||
|
|
||||||
# does not exist anymore - remove 2023-10-04 or so
|
# does not exist anymore - remove 2023-10-04 or so
|
||||||
extract.pl
|
extract.pl
|
||||||
|
@ -29,13 +29,3 @@ noinst_HEADERS += \
|
|||||||
vtysh_vtysh_LDADD = lib/libfrr.la $(LIBCAP) $(LIBREADLINE) $(LIBS) $(LIBPAM)
|
vtysh_vtysh_LDADD = lib/libfrr.la $(LIBCAP) $(LIBREADLINE) $(LIBS) $(LIBPAM)
|
||||||
|
|
||||||
EXTRA_DIST += vtysh/daemons.pl
|
EXTRA_DIST += vtysh/daemons.pl
|
||||||
|
|
||||||
BUILT_SOURCES += vtysh/vtysh_daemons.h
|
|
||||||
|
|
||||||
# force vtysh_daemons.h
|
|
||||||
$(vtysh_vtysh_OBJECTS): vtysh/vtysh_daemons.h
|
|
||||||
|
|
||||||
CLEANFILES += vtysh/vtysh_daemons.h
|
|
||||||
vtysh/vtysh_daemons.h:
|
|
||||||
@$(MKDIR_P) vtysh
|
|
||||||
$(PERL) $(top_srcdir)/vtysh/daemons.pl $(vtysh_daemons) > vtysh/vtysh_daemons.h
|
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#include "network.h"
|
#include "network.h"
|
||||||
#include "filter.h"
|
#include "filter.h"
|
||||||
#include "vtysh/vtysh.h"
|
#include "vtysh/vtysh.h"
|
||||||
#include "vtysh/vtysh_daemons.h"
|
#include "lib/vtysh_daemons.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "vrf.h"
|
#include "vrf.h"
|
||||||
#include "libfrr.h"
|
#include "libfrr.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user