]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
log: don't show function by default
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Wed, 17 Jun 2020 19:52:44 +0000 (21:52 +0200)
committerSimon Glass <sjg@chromium.org>
Fri, 10 Jul 2020 00:57:22 +0000 (18:57 -0600)
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>
cmd/log.c
common/Kconfig
common/log.c
include/log.h
test/log/syslog_test.c
test/py/tests/test_log.py

index 78352b2cb91c8a802a792264a0dcc598d009c49f..6afe6ead251b817a9915aac2382c1d0b79d620d1 100644 (file)
--- a/cmd/log.c
+++ b/cmd/log.c
@@ -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"
        ;
index 7872bc46cd2c27d1e0ff08e659a1baaddbd1d0d0..67b3818fdefc9fde7bfb528349118e7ca5239ea2 100644 (file)
@@ -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
index d7ce74f6b31ce89363a15c4746eeeae19f2cf2ba..734d26de4af30df4a89d664945f8a77635de9422 100644 (file)
@@ -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;
 }
index df65398c04e770d73cbb50d1c331d23f26fbbb0b..2859ce1f2e722747ac3abc698b379456be4edcc3 100644 (file)
@@ -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
index 26536ebca79d35bba8af7d9c08a245122b53a004..120a8b2537b9ae8d0389de48206552c90dfabf59 100644 (file)
@@ -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;
 }
index 75325fad61ad5ebd99801172f2a74b23217ae560..ddc28f19ee86291056e702e530e6aedf08a55395 100644 (file)
@@ -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()