log: Add control over log formatting
authorSimon Glass <sjg@chromium.org>
Thu, 28 Dec 2017 20:14:17 +0000 (13:14 -0700)
committerSimon Glass <sjg@chromium.org>
Sat, 3 Feb 2018 17:09:27 +0000 (10:09 -0700)
It is useful to be able to control the output format of log records on the
console. As a starting point, add definitions for controlling which
elements of the log record are displayed. Use function and message as the
default, since these are the most useful fields.

Signed-off-by: Simon Glass <sjg@chromium.org>
common/log.c
include/asm-generic/global_data.h
include/log.h

index d5f1cc50777d7618699166605c890fa1f50a460f..1b1b98e5de63cb090a5f44dd2cd7b7c5f0ec4242 100644 (file)
@@ -307,6 +307,7 @@ int log_init(void)
        }
        gd->flags |= GD_FLG_LOG_READY;
        gd->default_log_level = LOGL_INFO;
+       gd->log_fmt = LOGF_DEFAULT;
 
        return 0;
 }
index fd8cd45b050e44f41273135066ab45742130958b..1de67e8e8f56d9aaa2deea47c1daf455375bb43a 100644 (file)
@@ -119,6 +119,7 @@ typedef struct global_data {
        int log_drop_count;             /* Number of dropped log messages */
        int default_log_level;          /* For devices with no filters */
        struct list_head log_head;      /* List of struct log_device */
+       int log_fmt;                    /* Mask containing log format info */
 #endif
 } gd_t;
 #endif
index 5133213acf56be94797cc23aae45c501c42859a0..828919a409f470b95c6ce9b55fcba47e8c4e5535 100644 (file)
@@ -291,6 +291,20 @@ const char *log_get_level_name(enum log_level_t level);
  */
 enum log_level_t log_get_level_by_name(const char *name);
 
+/* Log format flags (bit numbers) for gd->log_fmt. See log_fmt_chars */
+enum log_fmt {
+       LOGF_CAT        = 0,
+       LOGF_LEVEL,
+       LOGF_FILE,
+       LOGF_LINE,
+       LOGF_FUNC,
+       LOGF_MSG,
+
+       LOGF_COUNT,
+       LOGF_DEFAULT = (1 << LOGF_FUNC) | (1 << LOGF_MSG),
+       LOGF_ALL = 0x3f,
+};
+
 /* Handle the 'log test' command */
 int do_log_test(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]);