log: don't show function by default
The name of the function emitting a log message may be of interest for a developer but is distracting for normal users. See the example below: try_load_entry() Booting: Debian Make the default format for log messages customizable. By default show only the message text. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
8af45b1f20
commit
3c21d7738a
@ -39,7 +39,7 @@ static int do_log_format(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
const char *str = argv[1];
|
||||
|
||||
if (!strcmp(str, "default")) {
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
} else if (!strcmp(str, "all")) {
|
||||
gd->log_fmt = LOGF_ALL;
|
||||
} else {
|
||||
@ -139,7 +139,7 @@ static char log_help_text[] =
|
||||
"log format <fmt> - set log output format. <fmt> is a string where\n"
|
||||
"\teach letter indicates something that should be displayed:\n"
|
||||
"\tc=category, l=level, F=file, L=line number, f=function, m=msg\n"
|
||||
"\tor 'default', equivalent to 'fm', or 'all' for all\n"
|
||||
"\tor 'default', or 'all' for all\n"
|
||||
"log rec <category> <level> <file> <line> <func> <message> - "
|
||||
"output a log record"
|
||||
;
|
||||
|
@ -699,6 +699,24 @@ config LOG_CONSOLE
|
||||
log message is shown - other details like level, category, file and
|
||||
line number are omitted.
|
||||
|
||||
config LOGF_FILE
|
||||
bool "Show source file name in log messages by default"
|
||||
help
|
||||
Show the source file name in log messages by default. This value
|
||||
can be overridden using the 'log format' command.
|
||||
|
||||
config LOGF_LINE
|
||||
bool "Show source line number in log messages by default"
|
||||
help
|
||||
Show the source line number in log messages by default. This value
|
||||
can be overridden using the 'log format' command.
|
||||
|
||||
config LOGF_FUNC
|
||||
bool "Show function name in log messages by default"
|
||||
help
|
||||
Show the function name in log messages by default. This value can
|
||||
be overridden using the 'log format' command.
|
||||
|
||||
config LOG_SYSLOG
|
||||
bool "Log output to syslog server"
|
||||
depends on NET
|
||||
|
@ -321,7 +321,7 @@ int log_init(void)
|
||||
gd->flags |= GD_FLG_LOG_READY;
|
||||
if (!gd->default_log_level)
|
||||
gd->default_log_level = CONFIG_LOG_DEFAULT_LEVEL;
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <stdio.h>
|
||||
#include <linker_lists.h>
|
||||
#include <dm/uclass-id.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/list.h>
|
||||
|
||||
struct cmd_tbl;
|
||||
@ -411,7 +412,6 @@ enum log_fmt {
|
||||
LOGF_MSG,
|
||||
|
||||
LOGF_COUNT,
|
||||
LOGF_DEFAULT = (1 << LOGF_FUNC) | (1 << LOGF_MSG),
|
||||
LOGF_ALL = 0x3f,
|
||||
};
|
||||
|
||||
@ -460,4 +460,20 @@ static inline int log_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* log_get_default_format() - get default log format
|
||||
*
|
||||
* The default log format is configurable via
|
||||
* CONFIG_LOGF_FILE, CONFIG_LOGF_LINE, CONFIG_LOGF_FUNC.
|
||||
*
|
||||
* Return: default log format
|
||||
*/
|
||||
static inline int log_get_default_format(void)
|
||||
{
|
||||
return BIT(LOGF_MSG) |
|
||||
(IS_ENABLED(CONFIG_LOGF_FILE) ? BIT(LOGF_FILE) : 0) |
|
||||
(IS_ENABLED(CONFIG_LOGF_LINE) ? BIT(LOGF_LINE) : 0) |
|
||||
(IS_ENABLED(CONFIG_LOGF_FUNC) ? BIT(LOGF_FUNC) : 0);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -21,6 +21,8 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define LOGF_TEST (BIT(LOGF_FUNC) | BIT(LOGF_MSG))
|
||||
|
||||
/**
|
||||
* struct sb_log_env - private data for sandbox ethernet driver
|
||||
*
|
||||
@ -102,7 +104,7 @@ static int log_test_syslog_err(struct unit_test_state *uts)
|
||||
int old_log_level = gd->default_log_level;
|
||||
struct sb_log_env env;
|
||||
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = LOGF_TEST;
|
||||
gd->default_log_level = LOGL_INFO;
|
||||
env_set("ethact", "eth@10002000");
|
||||
env_set("log_hostname", "sandbox");
|
||||
@ -116,6 +118,7 @@ static int log_test_syslog_err(struct unit_test_state *uts)
|
||||
/* Check that the callback function was called */
|
||||
sandbox_eth_set_tx_handler(0, NULL);
|
||||
gd->default_log_level = old_log_level;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -132,7 +135,7 @@ static int log_test_syslog_warning(struct unit_test_state *uts)
|
||||
int old_log_level = gd->default_log_level;
|
||||
struct sb_log_env env;
|
||||
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = LOGF_TEST;
|
||||
gd->default_log_level = LOGL_INFO;
|
||||
env_set("ethact", "eth@10002000");
|
||||
env_set("log_hostname", "sandbox");
|
||||
@ -147,6 +150,7 @@ static int log_test_syslog_warning(struct unit_test_state *uts)
|
||||
/* Check that the callback function was called */
|
||||
ut_assertnull(env.expected);
|
||||
gd->default_log_level = old_log_level;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -163,7 +167,7 @@ static int log_test_syslog_notice(struct unit_test_state *uts)
|
||||
int old_log_level = gd->default_log_level;
|
||||
struct sb_log_env env;
|
||||
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = LOGF_TEST;
|
||||
gd->default_log_level = LOGL_INFO;
|
||||
env_set("ethact", "eth@10002000");
|
||||
env_set("log_hostname", "sandbox");
|
||||
@ -178,6 +182,7 @@ static int log_test_syslog_notice(struct unit_test_state *uts)
|
||||
/* Check that the callback function was called */
|
||||
ut_assertnull(env.expected);
|
||||
gd->default_log_level = old_log_level;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -194,7 +199,7 @@ static int log_test_syslog_info(struct unit_test_state *uts)
|
||||
int old_log_level = gd->default_log_level;
|
||||
struct sb_log_env env;
|
||||
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = LOGF_TEST;
|
||||
gd->default_log_level = LOGL_INFO;
|
||||
env_set("ethact", "eth@10002000");
|
||||
env_set("log_hostname", "sandbox");
|
||||
@ -209,6 +214,7 @@ static int log_test_syslog_info(struct unit_test_state *uts)
|
||||
/* Check that the callback function was called */
|
||||
ut_assertnull(env.expected);
|
||||
gd->default_log_level = old_log_level;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -225,7 +231,7 @@ static int log_test_syslog_debug(struct unit_test_state *uts)
|
||||
int old_log_level = gd->default_log_level;
|
||||
struct sb_log_env env;
|
||||
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = LOGF_TEST;
|
||||
gd->default_log_level = LOGL_DEBUG;
|
||||
env_set("ethact", "eth@10002000");
|
||||
env_set("log_hostname", "sandbox");
|
||||
@ -240,6 +246,7 @@ static int log_test_syslog_debug(struct unit_test_state *uts)
|
||||
/* Check that the callback function was called */
|
||||
ut_assertnull(env.expected);
|
||||
gd->default_log_level = old_log_level;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -259,7 +266,7 @@ static int log_test_syslog_nodebug(struct unit_test_state *uts)
|
||||
int old_log_level = gd->default_log_level;
|
||||
struct sb_log_env env;
|
||||
|
||||
gd->log_fmt = LOGF_DEFAULT;
|
||||
gd->log_fmt = LOGF_TEST;
|
||||
gd->default_log_level = LOGL_INFO;
|
||||
env_set("ethact", "eth@10002000");
|
||||
env_set("log_hostname", "sandbox");
|
||||
@ -274,6 +281,7 @@ static int log_test_syslog_nodebug(struct unit_test_state *uts)
|
||||
/* Check that the callback function was not called */
|
||||
ut_assertnonnull(env.expected);
|
||||
gd->default_log_level = old_log_level;
|
||||
gd->log_fmt = log_get_default_format();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -39,6 +39,8 @@ def test_log(u_boot_console):
|
||||
Returns:
|
||||
iterator containing the lines output from the command
|
||||
"""
|
||||
output = u_boot_console.run_command('log format fm')
|
||||
assert output == ''
|
||||
with cons.log.section('basic'):
|
||||
output = u_boot_console.run_command('log test %d' % testnum)
|
||||
split = output.replace('\r', '').splitlines()
|
||||
|
Loading…
Reference in New Issue
Block a user