Add version info to debug output

- Initialize the log at the start of ipmi_main() to allow for proper
  logging at the start;
- Remove the unused log_level_get() function;
- Update log_level_set() to take verbosity instead of log level
  (default verbosity is 0, which is LOG_NOTICE log level),
  use the function to update log level as `-v` is encountered
  in command line;
- Move IANA PEN list debugging to verbosity 6. The list is too long
  to see it in each debug output of verbosity 5 that is used for
  debugging lan/lanplus packets;
- For verbosity >= 2 (that is `-vv`) add the ipmitool version
  information at the start.

Signed-off-by: Alexander Amelkin <alexander@amelkin.msk.ru>
This commit is contained in:
Alexander Amelkin 2020-07-17 03:29:42 +03:00 committed by Alexander Amelkin
parent 3a1a9cb283
commit 16f937a117
3 changed files with 16 additions and 15 deletions

View File

@ -358,12 +358,16 @@ ipmi_main(int argc, char ** argv,
/* Set program locale according to system settings */ /* Set program locale according to system settings */
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
/* save program name */ /* save program name */
progname = strrchr(argv[0], '/'); progname = strrchr(argv[0], '/');
progname = ((!progname) ? argv[0] : progname+1); progname = ((!progname) ? argv[0] : progname+1);
signal(SIGINT, ipmi_catch_sigint); signal(SIGINT, ipmi_catch_sigint);
memset(kgkey, 0, sizeof(kgkey)); memset(kgkey, 0, sizeof(kgkey));
/* setup log */
log_init(progname, 0, 0);
while ((argflag = getopt(argc, (char **)argv, OPTION_STRING)) != -1) while ((argflag = getopt(argc, (char **)argv, OPTION_STRING)) != -1)
{ {
switch (argflag) { switch (argflag) {
@ -443,7 +447,11 @@ ipmi_main(int argc, char ** argv,
break; break;
#endif /* IPMI_INTF_LANPLUS */ #endif /* IPMI_INTF_LANPLUS */
case 'v': case 'v':
verbose++; log_level_set(++verbose);
if (verbose == 2) {
/* add version info to debug output */
lprintf(LOG_DEBUG, "%s version %s\n", progname, VERSION);
}
break; break;
case 'c': case 'c':
csv_output = 1; csv_output = 1;
@ -844,9 +852,6 @@ ipmi_main(int argc, char ** argv,
goto out_free; goto out_free;
} }
/* setup log */
log_init(progname, 0, verbose);
/* load the IANA PEN registry */ /* load the IANA PEN registry */
if (ipmi_oem_info_init()) { if (ipmi_oem_info_init()) {
lprintf(LOG_ERR, "Failed to initialize the OEM info dictionary"); lprintf(LOG_ERR, "Failed to initialize the OEM info dictionary");

View File

@ -1631,6 +1631,7 @@ oem_info_init_from_list(oem_valstr_list_t *oemlist, size_t count)
size_t tail_entries = ARRAY_SIZE(ipmi_oem_info_tail) - 1; size_t tail_entries = ARRAY_SIZE(ipmi_oem_info_tail) - 1;
static oem_valstr_list_t *item; static oem_valstr_list_t *item;
bool rc = false; bool rc = false;
int oemlist_debug = LOG_DEBUG + 4; /* Require six -v options */
/* Include static entries and the terminator */ /* Include static entries and the terminator */
count += head_entries + tail_entries + 1; count += head_entries + tail_entries + 1;
@ -1653,7 +1654,7 @@ oem_info_init_from_list(oem_valstr_list_t *oemlist, size_t count)
goto out; goto out;
} }
lprintf(LOG_DEBUG + 3, " Allocating %6zu entries", count); lprintf(oemlist_debug, " Allocating %6zu entries", count);
/* Add a terminator at the very end */ /* Add a terminator at the very end */
--count; --count;
@ -1665,7 +1666,7 @@ oem_info_init_from_list(oem_valstr_list_t *oemlist, size_t count)
((struct valstr *)ipmi_oem_info)[count] = ((struct valstr *)ipmi_oem_info)[count] =
ipmi_oem_info_tail[tail_entries]; ipmi_oem_info_tail[tail_entries];
lprintf(LOG_DEBUG + 3, " [%6zu] %8d | %s", count, lprintf(oemlist_debug, " [%6zu] %8d | %s", count,
ipmi_oem_info[count].val, ipmi_oem_info[count].str); ipmi_oem_info[count].val, ipmi_oem_info[count].str);
} }
@ -1675,7 +1676,7 @@ oem_info_init_from_list(oem_valstr_list_t *oemlist, size_t count)
((struct valstr *)ipmi_oem_info)[count] = ((struct valstr *)ipmi_oem_info)[count] =
item->valstr; item->valstr;
lprintf(LOG_DEBUG + 3, " [%6zu] %8d | %s", count, lprintf(oemlist_debug, " [%6zu] %8d | %s", count,
ipmi_oem_info[count].val, ipmi_oem_info[count].str); ipmi_oem_info[count].val, ipmi_oem_info[count].str);
item = item->next; item = item->next;
@ -1686,7 +1687,7 @@ oem_info_init_from_list(oem_valstr_list_t *oemlist, size_t count)
while (count < SIZE_MAX && head_entries--) { while (count < SIZE_MAX && head_entries--) {
((struct valstr *)ipmi_oem_info)[count] = ((struct valstr *)ipmi_oem_info)[count] =
ipmi_oem_info_head[head_entries]; ipmi_oem_info_head[head_entries];
lprintf(LOG_DEBUG + 3, " [%6zu] %8d | %s", count, lprintf(oemlist_debug, " [%6zu] %8d | %s", count,
ipmi_oem_info[count].val, ipmi_oem_info[count].str); ipmi_oem_info[count].val, ipmi_oem_info[count].str);
--count; --count;
} }

View File

@ -144,13 +144,8 @@ void log_halt(void)
logpriv = NULL; logpriv = NULL;
} }
int log_level_get(void) void log_level_set(int verbose)
{ {
return logpriv->level; logpriv->level = verbose + LOG_NOTICE;
}
void log_level_set(int level)
{
logpriv->level = level;
} }