New logging_utils.py file with print_error_logs function.

Change-Id: I361f135f01f64863bd85933701409a03c992baa5
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/lib/logging_utils.py b/lib/logging_utils.py
new file mode 100644
index 0000000..2d0eb59
--- /dev/null
+++ b/lib/logging_utils.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+
+r"""
+Provide useful error log utility keywords.
+"""
+
+import gen_print as gp
+import sys
+import os
+import imp
+base_path = os.path.dirname(os.path.dirname(
+                            imp.find_module("gen_robot_print")[1])) + os.sep
+sys.path.append(base_path + "data/")
+import variables as var
+
+
+def print_error_logs(error_logs, key_list=None):
+
+    r"""
+    Print the error logs to the console screen.
+
+    This function provides the following benefits:
+    - It will specify print_var parms for the caller (e.g. hex=1).
+    - It is much easier to call this function than to generate the desired code
+      directly from a robot script.
+
+    Description of argument(s):
+    error_logs  An error log dictionary such as the one returned by the
+                'Get Error Logs' keyword.
+    key_list    The list of keys to be printed.  This may be specified as
+                either a python list or a space-delimited string.  In the
+                latter case, this function will convert it to a python list.
+                See the sprint_varx function prolog for additionatl details.
+
+    Example use from a python script:
+
+    ${error_logs}=  Get Error Logs
+    Print Error Logs  ${error_logs}  Message Timestamp
+
+    Sample output:
+
+    error_logs:
+      [/xyz/openbmc_project/logging/entry/3]:
+        [Timestamp]:                                  1521738335735
+        [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional
+      [/xyz/openbmc_project/logging/entry/2]:
+        [Timestamp]:                                  1521738334637
+        [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional
+      [/xyz/openbmc_project/logging/entry/1]:
+        [Timestamp]:                                  1521738300696
+        [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional
+      [/xyz/openbmc_project/logging/entry/4]:
+        [Timestamp]:                                  1521738337915
+        [Message]:                                    xyz.openbmc_project.Inventory.Error.Nonfunctional
+
+    Another example call using a robot list:
+    ${error_logs}=  Get Error Logs
+    ${key_list}=  Create List  Message  Timestamp  Severity
+    Print Error Logs  ${error_logs}  ${key_list}
+    """
+
+    if key_list is not None:
+        if type(key_list) in (str, unicode):
+            key_list = key_list.split(" ")
+        key_list.insert(0, var.BMC_LOGGING_ENTRY + ".*")
+
+    gp.print_var(error_logs, hex=1, key_list=key_list)