diff --git a/app/server-health/controllers/syslog-controller.html b/app/server-health/controllers/syslog-controller.html
index b503bd0..6a5e8ea 100644
--- a/app/server-health/controllers/syslog-controller.html
+++ b/app/server-health/controllers/syslog-controller.html
@@ -1,6 +1,6 @@
 <loader loading="loading"></loader>
 <div id="sys-log">
-    <section id="sys-log__events" class="table row column">
+    <section id="sys-log__logs">
       <div class="row column">
         <h1>System Logs</h1>
         <div class="page-header">
@@ -15,7 +15,7 @@
           </div>
           <a ng-href="data:text/json;charset=utf-8,{{sysLogs}}" class="inline btn-export float-right"  download="systemLogs.json" ng-show="sysLogs.length">Export </a>
           <button class="inline clear-input float-right btn-secondary" ng-click="confirm = !confirm" ng-show="sysLogs.length">&#10005; Clear {{selectedRecordType}} Logs</button>
-          <div class="inline__confirm event__confirm" ng-show="confirm">
+          <div class="inline__confirm sys-log__confirm" ng-show="confirm">
             <div class="inline__confirm-message">
               <p class="h3">Are you sure you want to <strong class="ng-binding">clear {{selectedRecordType}} logs</strong>?
               </p>
@@ -39,7 +39,10 @@
         </div>
       </div>
     </section>
-    <section id="sys-log__events" class="table row column" ng-show="sysLogs.length">
+    <section>
+      <syslog-filter></syslog-filter>
+    </section>
+    <section id="sys-log__logs" class="table row column" ng-show="sysLogs.length">
       <div class="table row column">
         <div class="table__head">
           <div class="table__row">
@@ -82,7 +85,7 @@
           </div>
         </div>
         <div class="table__body">
-          <div class="table__row" dir-paginate="log in (sysLogs | filter:filterBySearchTerms | orderBy:sortKey:reverse) | itemsPerPage:itemsPerPage">
+          <div class="table__row" dir-paginate="log in (sysLogs | filter:filterBySearchTerms | filter:filterBySeverity | filter:filterByDate | filter:filterByType | orderBy:sortKey:reverse) | itemsPerPage:itemsPerPage">
             <div class="table__cell sys-log__col-wrapper sys-log__col-id">{{log.Id}}</div>
             <div class="table__cell sys-log__col-wrapper">{{log.Created | localeDate}}</div>
             <div class="table__cell sys-log__col-wrapper">{{log.Name}}</div>
@@ -94,7 +97,7 @@
       </div>
       <dir-pagination-controls></dir-pagination-controls>
     </section>
-    <section id="sys-log__events" class="table row column" ng-show="!sysLogs.length">
+    <section id="sys-log__logs" class="table row column" ng-show="!sysLogs.length">
       <p>There are no {{selectedRecordType}} logs to display at this time.</p>
     </section>
-</div> <!-- end event log -->
+</div> <!-- end log -->
diff --git a/app/server-health/controllers/syslog-controller.js b/app/server-health/controllers/syslog-controller.js
index cec1d99..c073320 100644
--- a/app/server-health/controllers/syslog-controller.js
+++ b/app/server-health/controllers/syslog-controller.js
@@ -29,10 +29,17 @@
           $scope.recordTypeList =
               ['SEL', 'Event', 'Oem'];        // From Redfish specification.
           $scope.selectedRecordType = 'SEL';  // Default Select to SEL.
+          $scope.typeFilter = false;
+          $scope.selectedSeverityList = [];
+          $scope.severityList = ['All', 'Critical', 'Warning', 'Ok'];
+          $scope.filterTypes = [];
+          $scope.selectedType = 'All';
 
           $scope.selectRecordType = function(recordType) {
             $scope.selectedRecordType = recordType;
             $scope.showLogDropdown = false;
+            $scope.filterTypes = [];
+
             APIUtils.getSystemLogs(recordType)
                 .then(
                     function(res) {
@@ -102,7 +109,9 @@
           };
 
           $scope.filterBySearchTerms = function(log) {
-            if (!$scope.searchTerms.length) return true;
+            if (!$scope.searchTerms.length) {
+              return true;
+            }
 
             for (var i = 0, length = $scope.searchTerms.length; i < length;
                  i++) {
@@ -116,6 +125,32 @@
             return true;
           };
 
+          $scope.filterBySeverity = function(log) {
+            if ($scope.selectedSeverityList.length == 0) {
+              return true;
+            }
+
+            return ($scope.selectedSeverityList.indexOf(log.Severity) > -1);
+          };
+
+          $scope.filterByType = function(log) {
+            if ($scope.selectedType == 'All') {
+              return true;
+            }
+
+            return (($scope.selectedType == log.SensorType));
+          };
+
+          $scope.filterByDate = function(log) {
+            var logDate = new Date(log.Created);
+            if ($scope.start_date && $scope.end_date) {
+              return (
+                  logDate >= $scope.start_date && logDate <= $scope.end_date);
+            } else {
+              return true;
+            }
+          };
+
           setTimeout($scope.selectRecordType($scope.selectedRecordType), 2000);
         }
       ]);
diff --git a/app/server-health/styles/syslog.scss b/app/server-health/styles/syslog.scss
index c225e55..52681e0 100644
--- a/app/server-health/styles/syslog.scss
+++ b/app/server-health/styles/syslog.scss
@@ -1,4 +1,4 @@
-// Event Log SCSS
+// System Logs SCSS
 #sys-log {
 
   // Dropwdowns filter
@@ -27,27 +27,68 @@
 .sort_button_wrapper {
   padding-top:.3em;
 }
-.sys-log__filters {
-  position: relative;
-  padding-bottom: .5em;
-  padding-top: .5em;
 
-  @media (min-width: 1333px) {
-    float: right;
-    display: inline-block;
+#sys-log-filter {
+  .filter-label {
+    color: $darkgrey;
+    text-transform: uppercase;
+    font-weight: 700;
+    font-size: .75em;
+    margin-bottom: 3px;
+  }
+  .sys-log__severity-filter {
+    float:left;
+    margin-right: 2em;
+    margin-bottom: 1em;
+    button {
+      padding: .6em 2em;
+      margin: 0px -1px;
+      min-height: 2.1em;
+      font-size: .9em;
+      font-weight: 700;
+      border-radius: 0;
+      &.first,
+      &.last {
+        border-radius: 3px;
+      }
+      @media (min-width: 583px) {
+        &.last {
+          border-left: 0;
+        }
+      }
+    }
+    .btn-primary {
+      border: 2px solid $primebtn__bg;
+    }
+  }
+  .sys-log__date-filter {
+    margin-right: 1em;
+    color: $darkgrey;
+    float:left;
+    input {
+      width: 170px;
+      height: 2.1rem;
+    }
+    label {
+      height: 0;
+      text-indent: -9999px;
+    }
+  }
+  .sys-log__status-filter {
+    float:left;
+    @include mediaQuery(medium) {
+      width: 25%;
+    }
+    .dropdown__wrapper,
+    .dropdown__button {
+      width: 100%;
+      text-align: left;
+    }
   }
 }
 
-.accord-trigger {
-  position: absolute;
-  right: 1em;
-  top: .3em;
-}
-
-#sys-log__events,
-.sys-log__events {
+#sys-log__logs {
   display: block;
-  margin-top: 1.6em;
   position: relative;
   .header__actions-bar {
     .btn-export,
@@ -306,4 +347,4 @@
     }
   }
 }
-//end sys-log__events
+//end sys-log__logs
