diff --git a/app/common/directives/log-event.html b/app/common/directives/log-event.html
new file mode 100644
index 0000000..bf2cc1f
--- /dev/null
+++ b/app/common/directives/log-event.html
@@ -0,0 +1,60 @@
+<div class="row column event-log__single-event"
+      ng-class="{'active': event.meta, 'selected': event.selected}">
+     <div class="row">
+         <div class="inline__confirm" ng-class="{active: event.confirm}">
+             <div class="inline__confirm-message">
+                 <p class="h3"><i></i>Are you sure you want to <strong class="ng-binding">delete this
+                     event</strong>?</p>
+             </div>
+             <div class="inline__confirm-buttons">
+                 <button class="btn-primary" ng-click="accept()">Yes</button>
+                 <button class="btn-primary" ng-click="event.confirm=false;">No</button>
+             </div>
+         </div>
+         <div class="column small-1 large-2 event-log__col-check">
+             <label class="control-check">
+                 <input type="checkbox" name="events__check" ng-click="event.selected= ! event.selected"
+                        ng-checked="event.selected"/>
+                 <span class="control__indicator"></span>
+             </label>
+         </div>
+         <div class="column small-9 large-9 event-log__event-info"
+              ng-click="event.meta = ! event.meta">
+             <p class="inline event__priority event-resolved" ng-hide="event.Resolved == 0">Resolved</p>
+             <p class="inline event__priority med-priority" ng-class="{'low-priority': event.priority == 'Low', 'medium-priority': event.priority == 'Medium', 'high-priority': event.priority == 'High'}" ng-hide="event.Resolved == 1">{{event.priority}}</p>
+             <p class="inline event__severity">{{event.severity_code}}</p>
+             <p class="inline event__description">{{event.Severity}}</p>
+             <div>
+                 <p class="inline event__id">#{{event.Id}}</p>
+                 <p class="inline event__timestamp">{{event.Timestamp| date:'MM/dd/yyyy  HH:mm:ss '+tmz: tmz}}</p></div>
+         </div>
+         <div class="column small-1 large-1">
+             <button class="accord-trigger" ng-class="{'active': event.meta}"
+                     ng-click="event.meta = ! event.meta"></button>
+         </div>
+     </div>
+     <div class="row event__metadata-row" ng-class="{'active': event.meta}">
+         <div class="column small-1 large-1 event-log__col-check">&nbsp;</div>
+         <div class="column small-11 large-11 end">
+             <div class="event__metadata">{{event.additional_data}}
+             </div>
+             <div>
+                 <div class="event__actions">
+                     <button class="btn-meta-copy" clipboard text="event.additional_data" on-copied="copySuccess(event)" on-error="copyfailed(err)">
+                        <img class="event__icon" src="assets/images/icon-copy.svg" alt=""/><span ng-if="!event.copied">Copy</span><span ng-if="event.copied">Copied</span>
+                     </button>
+                     <button class="btn-delete" ng-click="event.confirm= ! event.confirm"><img
+                             class="event__icon"
+                             src="assets/images/icon-trashcan.svg"
+                             alt=""/>Delete
+                     </button>
+                     <button class="btn-resolve"><img class="event__icon" src="assets/images/icon-checklist.svg" alt=""/>Resolved</button>
+                 </div>
+                 <div class="event__related" ng-show="event.related_items.length">
+                     <p class="inline event__related-label">Related items:</p>
+                     <p class="event__related-item" ng-repeat="item in event.related_items">{{item}}</p>
+                 </div>
+             </div>
+         </div>
+     </div>
+</div>
diff --git a/app/common/directives/log-event.js b/app/common/directives/log-event.js
new file mode 100644
index 0000000..387ce3b
--- /dev/null
+++ b/app/common/directives/log-event.js
@@ -0,0 +1,28 @@
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.common.directives')
+        .directive('logEvent', ['APIUtils', function (APIUtils) {
+            return {
+                'restrict': 'E',
+                'templateUrl': 'common/directives/log-event.html',
+                'scope': {
+                   'event': '=',
+                   'tmz': '='
+                },
+                'controller': ['$rootScope', '$scope','dataService', '$location', '$timeout', function($rootScope, $scope, dataService, $location, $timeout){
+                    $scope.dataService = dataService;
+                    $scope.copySuccess = function (event) {
+                        event.copied = true;
+                        $timeout(function(){
+                            event.copied = false;
+                        }, 5000);
+                    };
+                    $scope.copyFailed = function (err) {
+                        console.error('Error!', err);
+                    };
+                }]
+            };
+        }]);
+})(window.angular);
diff --git a/app/common/directives/log-filter.html b/app/common/directives/log-filter.html
new file mode 100644
index 0000000..c0c5a20
--- /dev/null
+++ b/app/common/directives/log-filter.html
@@ -0,0 +1,58 @@
+<section id="event-filter" class="row column">
+    <div class="inline event__severity-filter">
+        <p class="filter-label">Filter by severity</p>
+        <button class="inline first" ng-click="toggleSeverityAll()"
+                ng-class="selectedSeverity.all ? 'btn-primary' : 'btn-secondary'">All
+        </button>
+        <button class="inline " ng-click="toggleSeverity('high')"
+                ng-class="selectedSeverity.high ? 'btn-primary' : 'btn-secondary'">High
+        </button>
+        <button class="inline" ng-click="toggleSeverity('medium')"
+                ng-class="selectedSeverity.medium ? 'btn-primary' : 'btn-secondary'">Medium
+        </button>
+        <button class="inline last" ng-click="toggleSeverity('low')"
+                ng-class="selectedSeverity.low ? 'btn-primary' : 'btn-secondary'">Low
+        </button>
+    </div>
+    <div class="inline event__date-filter">
+        <p class="filter-label">Filter by date range (MM/DD/YYYY)</p>
+        <div class="inline">
+            <label for="event-filter-start-date">Start Date</label>
+            <input id="event-filter-start-date" type="date" placeholder="MM/DD/YYYY" ng-model="start_date"/>
+        </div>
+        <strong>&ndash;</strong>
+        <div class="inline">
+            <label for="event-filter-end-date">End Date</label>
+            <input id="event-filter-end-date" type="date" placeholder="MM/DD/YYYY" ng-model="end_date"/>
+        </div>
+    </div>
+    <div class="inline event__status-filter">
+        <p class="filter-label">Filter by issue status</p>
+        <!-- Status filter -->
+        <div class="dropdown__wrapper">
+            <button class="dropdown__button" ng-click="statusFilter = statusFilter == true ? false : true;"
+                    ng-class="{'active' : statusFilter}" toggle-flag="statusFilter">
+                    <span ng-if="selectedStatus.all">All issues</span>
+                    <span ng-if="!selectedStatus.all && selectedStatus.resolved">Resolved issues</span>
+                    <span ng-if="!selectedStatus.all && !selectedStatus.resolved">Unresolved issues</span>
+            </button>
+            <ul class="dropdown__list inline" ng-show="statusFilter">
+                <li>
+                    <button 
+                        ng-click="selectedStatus.all = true; statusFilter = false;"
+                        ng-class="{'active' : selectedStatus.all}">All issues</button>
+                </li>
+                <li>
+                    <button 
+                        ng-click="selectedStatus.all = false; selectedStatus.resolved = true; statusFilter = false;"
+                        ng-class="{'active' : selectedStatus.resolved}">Resolved issues</button>
+                </li>
+                <li>
+                    <button 
+                        ng-click="selectedStatus.all = false; selectedStatus.resolved = false; statusFilter = false;"
+                        ng-class="{'active' : !selectedStatus.resolved}">Unresolved issues</button>
+                </li>
+            </ul>
+        </div>
+    </div>
+</section>
\ No newline at end of file
diff --git a/app/common/directives/log-filter.js b/app/common/directives/log-filter.js
new file mode 100644
index 0000000..fcbffe4
--- /dev/null
+++ b/app/common/directives/log-filter.js
@@ -0,0 +1,39 @@
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.common.directives')
+        .directive('logFilter', ['APIUtils', function (APIUtils) {
+            return {
+                'restrict': 'E',
+                'templateUrl': 'common/directives/log-filter.html',
+                'controller': ['$rootScope', '$scope','dataService', '$location', function($rootScope, $scope, dataService, $location){
+                    $scope.dataService = dataService;
+                    $scope.toggleSeverityAll = function(){
+                        $scope.selectedSeverity.all = !$scope.selectedSeverity.all;
+
+                        if($scope.selectedSeverity.all){
+                            $scope.selectedSeverity.low = false;
+                            $scope.selectedSeverity.medium = false;
+                            $scope.selectedSeverity.high = false;
+                        }
+                    }
+
+                    $scope.toggleSeverity = function(severity){
+                        $scope.selectedSeverity[severity] = !$scope.selectedSeverity[severity];
+
+                        if($scope.selectedSeverity.low && 
+                           $scope.selectedSeverity.medium && 
+                           $scope.selectedSeverity.high){
+                            $scope.selectedSeverity.all = true;
+                            $scope.selectedSeverity.low = false;
+                            $scope.selectedSeverity.medium = false;
+                            $scope.selectedSeverity.high = false;
+                        }else{
+                            $scope.selectedSeverity.all = false;
+                        }
+                    }
+                }]
+            };
+        }]);
+})(window.angular);
diff --git a/app/common/directives/log-search-control.html b/app/common/directives/log-search-control.html
new file mode 100644
index 0000000..03b699b
--- /dev/null
+++ b/app/common/directives/log-search-control.html
@@ -0,0 +1,5 @@
+<div class="content__search">
+    <label for="content__search-input">Event Log Search</label>
+    <input id="content__search-input" type="text" placeholder="Filter issues" ng-model="customSearch" ng-keydown="doSearchOnEnter($event)"/>
+    <input id="content__search-submit" type="submit" class="btn btn-secondary" value="Submit" ng-click="doSearchOnClick()"/>
+</div>
\ No newline at end of file
diff --git a/app/common/directives/log-search-control.js b/app/common/directives/log-search-control.js
new file mode 100644
index 0000000..1fa268c
--- /dev/null
+++ b/app/common/directives/log-search-control.js
@@ -0,0 +1,39 @@
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.common.directives')
+        .directive('logSearchControl', ['APIUtils', function (APIUtils) {
+            return {
+                'restrict': 'E',
+                'templateUrl': 'common/directives/log-search-control.html',
+                'controller': ['$rootScope', '$scope','dataService', '$location', function($rootScope, $scope, dataService, $location){
+                    $scope.dataService = dataService;
+                    $scope.doSearchOnEnter = function (event) {
+                        var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
+                        if (event.keyCode === 13 &&
+                            search.length >= 2) {
+                            $scope.clearSearchItem();
+                            $scope.addSearchItem(search);
+                        }else{
+                            if(search.length == 0){
+                                $scope.clearSearchItem();
+                            }
+                        }
+                    };
+
+                    $scope.doSearchOnClick = function() {
+                        var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
+                        if (search.length >= 2) {
+                            $scope.clearSearchItem();
+                            $scope.addSearchItem(search);
+                        }else{
+                            if(search.length == 0){
+                                $scope.clearSearchItem();
+                            }
+                        }
+                    }
+                }]
+            };
+        }]);
+})(window.angular);
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 0a96f62..0c69b9e 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -348,7 +348,7 @@
                             severity_flags: severityFlags,
                             additional_data: content.data[key].AdditionalData.join("\n"),
                             selected: false,
-                            search_text: (severityCode + " " + content.data[key].Severity + " " + content.data[key].AdditionalData.join(" ")).toLowerCase(),
+                            search_text: ("#" + content.data[key].Id + " " + severityCode + " " + content.data[key].Severity + " " + content.data[key].AdditionalData.join(" ")).toLowerCase(),
                             meta: false,
                             confirm: false,
                             related_items: relatedItems,
