66 lines
2.3 KiB
Diff
66 lines
2.3 KiB
Diff
|
From a52f630e40ff8f7abc266bd4f1fe09f9087faeaa Mon Sep 17 00:00:00 2001
|
||
|
From: John Pittman <jpittman@redhat.com>
|
||
|
Date: Thu, 18 Feb 2021 10:55:50 -0500
|
||
|
Subject: [PATCH 1/6] log: change log level print in older kernels
|
||
|
|
||
|
In older kernels that have the variable-length-record log_buf, the
|
||
|
log level and the log flags/facility are not separated. Since the
|
||
|
log level is only the last three bits, and the flags/facility and
|
||
|
level are separated in 5.10 and later kernels, only print those last
|
||
|
three bits when using 'log -m'.
|
||
|
|
||
|
[ kh: modified commit message ]
|
||
|
|
||
|
Suggested-by: David Jeffery <djeffery@redhat.com>
|
||
|
Signed-off-by: John Pittman <jpittman@redhat.com>
|
||
|
---
|
||
|
defs.h | 1 +
|
||
|
help.c | 5 +++--
|
||
|
kernel.c | 2 ++
|
||
|
3 files changed, 6 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/defs.h b/defs.h
|
||
|
index 35cdac20420c..35b983abd403 100644
|
||
|
--- a/defs.h
|
||
|
+++ b/defs.h
|
||
|
@@ -5627,6 +5627,7 @@ void clone_bt_info(struct bt_info *, struct bt_info *, struct task_context *);
|
||
|
void dump_kernel_table(int);
|
||
|
void dump_bt_info(struct bt_info *, char *where);
|
||
|
void dump_log(int);
|
||
|
+#define LOG_LEVEL(v) ((v) & 0x07)
|
||
|
#define SHOW_LOG_LEVEL (0x1)
|
||
|
#define SHOW_LOG_DICT (0x2)
|
||
|
#define SHOW_LOG_TEXT (0x4)
|
||
|
diff --git a/help.c b/help.c
|
||
|
index 587c7173f495..85b334a0419e 100644
|
||
|
--- a/help.c
|
||
|
+++ b/help.c
|
||
|
@@ -3906,8 +3906,9 @@ char *help_log[] = {
|
||
|
" applicable to the variable-length record format.",
|
||
|
" -m Display the message log level in brackets preceding each message. For",
|
||
|
" the variable-length record format, the level will be displayed in ",
|
||
|
-" hexadecimal, and depending upon the kernel version, also contains the",
|
||
|
-" facility or flags bits.",
|
||
|
+" hexadecimal. In older kernels, by default, the facility/flag bits",
|
||
|
+" will be stripped to only show the level, but if needed, can still be",
|
||
|
+" shown with 'set debug 1'.",
|
||
|
" -a Dump the audit logs remaining in kernel audit buffers that have not",
|
||
|
" been copied out to the user-space audit daemon.",
|
||
|
" ",
|
||
|
diff --git a/kernel.c b/kernel.c
|
||
|
index ac765e302639..735263cbcd75 100644
|
||
|
--- a/kernel.c
|
||
|
+++ b/kernel.c
|
||
|
@@ -5262,6 +5262,8 @@ dump_log_entry(char *logptr, int msg_flags)
|
||
|
fprintf(fp, "%s", buf);
|
||
|
}
|
||
|
|
||
|
+ level = LOG_LEVEL(level);
|
||
|
+
|
||
|
if (msg_flags & SHOW_LOG_LEVEL) {
|
||
|
sprintf(buf, "<%x>", level);
|
||
|
ilen += strlen(buf);
|
||
|
--
|
||
|
2.29.2
|
||
|
|