]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
dracut-logger: convertion to kernel console log level for kmsg
authorAmadeusz Żołnowski <aidecoe@aidecoe.name>
Tue, 15 Mar 2011 20:16:37 +0000 (21:16 +0100)
committerHarald Hoyer <harald@redhat.com>
Wed, 16 Mar 2011 11:01:42 +0000 (12:01 +0100)
dracut-logger

index 43cc18ef53c3d0eba61c081bb3aa6b2b4dd865fa..0978d5851bb7523e2fc9ffdeb816eee5dc3896d4 100755 (executable)
@@ -192,6 +192,38 @@ _lvl2syslogpri() {
     esac
 }
 
+## @brief Converts dracut-logger numeric level to kernel console log level
+#
+# @param lvl Numeric logging level in range from 1 to 6.
+# @retval 1 if @a lvl is out of range.
+# @retval 0 if @a lvl is correct.
+# @result Echoes kernel console numeric log level
+#
+# Conversion is done as follows:
+#
+# <tt>
+#   none     -> KERN_EMERG (0)
+#   FATAL(1) -> KERN_ALERT (1)
+#   none     -> KERN_CRIT (2)
+#   ERROR(2) -> KERN_ERR (3)
+#   WARN(3)  -> KERN_WARNING (4)
+#   none     -> KERN_NOTICE (5)
+#   INFO(4)  -> KERN_INFO (6)
+#   DEBUG(5) -> KERN_DEBUG (7)
+#   TRACE(6) /
+# </tt>
+_dlvl2klvl() {
+    case "$1" in
+        1) echo 1;;
+        2) echo 3;;
+        3) echo 4;;
+        4) echo 6;;
+        5) echo 7;;
+        6) echo 7;;
+        *) return 1;;
+    esac
+}
+
 ## @brief Prints to stderr and/or writes to file, to syslog and/or /dev/kmsg
 # given message with given level (priority).
 #
@@ -234,7 +266,8 @@ _do_dlog() {
     if [ $lvl -le $fileloglvl -a -w "$logfile" -a -f "$logfile" ]; then
         echo "$msg" >>"$logfile"
     fi
-    [ $lvl -le $kmsgloglvl ] && echo "[dracut[$$]] $msg" >/dev/kmsg
+    [ $lvl -le $kmsgloglvl ] && \
+        echo "<$(_dlvl2klvl $lvl)>dracut[$$] $msg" >/dev/kmsg
 }
 
 ## @brief Internal helper function for _do_dlog()