diff --git a/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties b/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
index 8928d08..4d4f592 100644
--- a/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
+++ b/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
@@ -93,6 +93,10 @@
 log.level.warn=WARN
 log.level.info=INFO
 log.level.debug=DEBUG
+log.traces=Exception details:
+log.traces.full=Full Trace
+log.traces.min=Message Only
+
 
 # Bundles plugin
 bundles.pluginTitle=Bundles
diff --git a/webconsole/src/main/resources/res/ui/logs.css b/webconsole/src/main/resources/res/ui/logs.css
index 16f46df..21f6d95 100644
--- a/webconsole/src/main/resources/res/ui/logs.css
+++ b/webconsole/src/main/resources/res/ui/logs.css
@@ -22,3 +22,8 @@
 th.col_Level  { width: 6em }
 th.col_Received,
 th.col_Exception { min-width: 10em }
+td.ex {
+	font-size: smaller;
+	font-family: monospace;
+	white-space: pre
+}
diff --git a/webconsole/src/main/resources/res/ui/logs.js b/webconsole/src/main/resources/res/ui/logs.js
index acfdcec..00f2221 100644
--- a/webconsole/src/main/resources/res/ui/logs.js
+++ b/webconsole/src/main/resources/res/ui/logs.js
@@ -47,6 +47,7 @@
     var message = dataEntry.message;
     var level = dataEntry.level;
     var exception = dataEntry.exception;
+	var exceptionClass = $(".enableTraces").val() == 'true' ? 'ex' : null;
     var service = dataEntry.service;
 	switch (dataEntry.raw_level) { // i18n
 		case 1: level = i18n.error; break;
@@ -54,11 +55,16 @@
 		case 3: level = i18n.info; break;
 		case 4: level = i18n.debug; break;
 	}
+	var bundle = text('');
+	if (dataEntry.bundleId) {
+		bundle = createElement( 'a', null, {href : appRoot + '/bundles/' + dataEntry.bundleId}, [ text (dataEntry.bundleName) ] )
+	}
     parent.appendChild( td( null, null, [ text( printDate(dataEntry.received) ) ] ) );
     parent.appendChild( td( null, { lvl:dataEntry.raw_level }, [ text( level ) ] ) );    
     parent.appendChild( td( null, null, [ text( wordWrap(message) ) ] ) );
     parent.appendChild( td( null, null, [ text( wordWrap(service) ) ] ) );
-    parent.appendChild( td( null, null, [ text( exception ) ] ) );
+    parent.appendChild( td( null, null, [ bundle ] ) );
+    parent.appendChild( td( exceptionClass, null, [ text( exception ) ] ) );
 }
 
 /* displays a date in the user's local timezone */
@@ -68,28 +74,34 @@
 }
 
 function loadData() {
-	$.get(pluginRoot + "/data.json", { "minLevel":$(".minLevel").val()}, renderData, "json");
+	$.post(pluginRoot, {
+		"minLevel" : $(".minLevel").val(),
+		"traces"   : $(".enableTraces").val()
+	}, renderData, "json");
 	return false; // for button
 }
 
 $(document).ready(function() {
 	// install user interaction handlers
     $(".reloadButton").click(loadData);
+	$(".enableTraces").change(function() {
+		var val = $(this).val();
+		$(".enableTraces").val(val); // same values for both select boxes
+		loadData();
+	})
     $(".minLevel").change(function() {
 		var value = $(this).val();
 		$(".minLevel").val(value); // same values for both select boxes
-    	$.post(pluginRoot, {"minLevel":value}, function(data) {
-    	    renderData(data);
-    	}, "json");
+		loadData();
     });
-		// init tablesorte
+	// init tablesorte
 	$('#plugin_table').tablesorter({
 		textExtraction: function(node) {
 			var _ = $(node);
 			return _.attr('lvl') ? _.attr('lvl') : _.text();
 		}
 	});
-	
+
 	logsElem  = $("#logs");
     logs2Elem = $("#logs2");
 	tableElem = $("#plugin_table");
diff --git a/webconsole/src/main/resources/templates/logs.html b/webconsole/src/main/resources/templates/logs.html
index 2086dcb..48a852f 100644
--- a/webconsole/src/main/resources/templates/logs.html
+++ b/webconsole/src/main/resources/templates/logs.html
@@ -20,6 +20,11 @@
 <!-- buttons top -->
 <form method="post" enctype="multipart/form-data" action="">
 	<div class="ui-widget-header ui-corner-top buttonGroup">
+		<label>${log.traces}</label>
+		<select class="enableTraces">
+			<option value="false">${log.traces.min}</option>
+			<option value="true">${log.traces.full}</option>
+		</select>
 		<label>${log.severity.label}</label>
 		<select class="minLevel">
 			<option value="1">${log.level.error}</option>
@@ -39,17 +44,23 @@
 			<th class="col_Level">${log.level}</th>
 			<th class="col_Message">${log.message}</th>
 			<th class="col_Service">${log.service}</th>
+			<th class="col_Bundle">${bundle}</th>
 			<th class="col_Exception">${log.exception}</th>
 		</tr>
 	</thead>
 	<tbody>
-		<tr><td colspan="5">&nbsp;</td></tr>
+		<tr><td colspan="6">&nbsp;</td></tr>
 	</tbody>
 </table>
 
 <!-- buttons bottom -->
 <form method="post" enctype="multipart/form-data" action="">
 	<div class="ui-widget-header ui-corner-bottom buttonGroup">
+		<label>${log.traces}</label>
+		<select class="enableTraces">
+			<option value="false">${log.traces.min}</option>
+			<option value="true">${log.traces.full}</option>
+		</select>
 		<label>${log.severity.label}</label>
 		<select class="minLevel">
 			<option value="1">${log.level.error}</option>
