diff --git a/Framework/PythonInterface/mantid/plots/datafunctions.py b/Framework/PythonInterface/mantid/plots/datafunctions.py
index 494e7fbcd406c564941ecabac446c4795eae2da6..74ddac5e5a00d5f113bc8d414422a8704469fb0c 100644
--- a/Framework/PythonInterface/mantid/plots/datafunctions.py
+++ b/Framework/PythonInterface/mantid/plots/datafunctions.py
@@ -608,7 +608,11 @@ def get_sample_log(workspace, **kwargs):
     if not run.hasProperty(LogName):
         raise ValueError('The workspace does not contain the {} sample log'.format(LogName))
     tsp = run[LogName]
-    units = tsp.units
+    try:
+        units = tsp.units
+    except UnicodeDecodeError as exc:
+        mantid.kernel.logger.warning("Error retrieving units for log {}: {}".format(LogName, str(exc)))
+        units = "unknown"
     if not isinstance(tsp, (mantid.kernel.FloatTimeSeriesProperty,
                             mantid.kernel.Int32TimeSeriesProperty,
                             mantid.kernel.Int64TimeSeriesProperty)):
diff --git a/qt/applications/workbench/workbench/plugins/workspacewidget.py b/qt/applications/workbench/workbench/plugins/workspacewidget.py
index 67a398ad1a5acfff35d6d06bd13a4c73f1d23d23..4af40c31a6002720ab813e5021c68c3972e0cc97 100644
--- a/qt/applications/workbench/workbench/plugins/workspacewidget.py
+++ b/qt/applications/workbench/workbench/plugins/workspacewidget.py
@@ -138,8 +138,8 @@ class WorkspaceWidget(PluginWidget):
             except Exception as exception:
                 logger.warning("Could not open sample logs for workspace '{}'."
                                "".format(ws.name()))
-                logger.debug("{}: {}".format(type(exception).__name__,
-                                             exception))
+                logger.warning("{}: {}".format(type(exception).__name__,
+                                               exception))
 
     def _do_slice_viewer(self, names):
         """
diff --git a/qt/python/mantidqt/widgets/samplelogs/model.py b/qt/python/mantidqt/widgets/samplelogs/model.py
index d08316773dcb30ea6383a116d5510f20125258b8..d69c98a12e92e661e9f1f9c0f67adcdf4e2fb7af 100644
--- a/qt/python/mantidqt/widgets/samplelogs/model.py
+++ b/qt/python/mantidqt/widgets/samplelogs/model.py
@@ -10,7 +10,7 @@
 from __future__ import (absolute_import, division, print_function)
 from mantid.kernel import (BoolTimeSeriesProperty,
                            FloatTimeSeriesProperty, Int32TimeSeriesProperty,
-                           Int64TimeSeriesProperty, StringTimeSeriesProperty)
+                           Int64TimeSeriesProperty, StringTimeSeriesProperty, logger)
 from mantid.api import MultipleExperimentInfos
 from qtpy.QtGui import QStandardItemModel, QStandardItem
 
@@ -55,6 +55,7 @@ class SampleLogsModel(object):
     """This class stores the workspace object and return log values when
     requested
     """
+
     def __init__(self, ws):
         """Stores three thing:, the workspace, which experiment info number
         to use, and the run object.
@@ -126,23 +127,27 @@ class SampleLogsModel(object):
         """Return a QModel made from the current workspace. This should be set
         onto a QTableView
         """
+
+        def create_table_item(column, itemname, callable, *args):
+            item = QStandardItem()
+            item.setEditable(False)
+            try:
+                item.setText(callable(*args))
+            except Exception as exc:
+                logger.warning("Error setting column {} for log {}: {}".format(column, itemname, str(exc)))
+
+            return item
+
         model = QStandardItemModel()
         model.setHorizontalHeaderLabels(["Name", "Type", "Value", "Units"])
         model.setColumnCount(4)
         for key in self.get_log_names():
             log = self.run.getLogData(key)
-            name = QStandardItem()
-            name.setText(log.name)
-            name.setEditable(False)
-            log_type = QStandardItem()
-            log_type.setText(get_type(log))
-            log_type.setEditable(False)
-            value = QStandardItem()
-            value.setText(str(get_value(log)))
-            value.setEditable(False)
-            unit = QStandardItem()
-            unit.setText(log.units)
-            unit.setEditable(False)
+            name = create_table_item("Name", key, lambda: log.name)
+            log_type = create_table_item("Type", key, get_type, log)
+            value = create_table_item("Value", key, lambda log: str(get_value(log)), log)
+            unit = create_table_item("Units", key, lambda: log.units)
             model.appendRow((name, log_type, value, unit))
+
         model.sort(0)
         return model