diff --git a/log_manager.cpp b/log_manager.cpp
index c9edd7e..e9f11ec 100644
--- a/log_manager.cpp
+++ b/log_manager.cpp
@@ -7,6 +7,8 @@
 #include <systemd/sd-bus.h>
 #include <systemd/sd-journal.h>
 #include "elog-lookup.cpp"
+#include "config.h"
+#include "elog_entry.hpp"
 #include "log.hpp"
 #include "log_manager.hpp"
 
@@ -21,7 +23,6 @@
     constexpr const auto path = "/tmp/elog";
     constexpr const auto transactionIdVar = "TRANSACTION_ID";
 
-    // Create log file
     std::string filename{};
     filename.append(path);
     // TODO Create error logs in their own separate dir once permanent location
@@ -41,6 +42,7 @@
 
     std::string transactionIdStr = std::to_string(transactionId);
     std::vector<std::string> metalist = g_errMetaMap[errMsg];
+    std::vector<std::string> additionalData;
 
     // Read the journal from the end to get the most recent entry first.
     // The result from the sd_journal_get_data() is of the form VARIABLE=value.
@@ -78,6 +80,7 @@
         {
             continue;
         }
+
         efile << "\t\"@" << data << "\"," << std::endl;
 
         // Search for the metadata variables in the current journal entry
@@ -94,6 +97,7 @@
             }
 
             // Metatdata variable found, write to file
+            additionalData.push_back(std::string(data));
             efile << "\t\"@" << data << "\"," << std::endl;
         }
         efile << "\t}" << std::endl;
@@ -104,6 +108,18 @@
     }
     sd_journal_close(j);
 
+    // Create error Entry dbus object
+    entryId++;
+    auto objPath =  std::string(OBJ_ENTRY) + '/' +
+        std::to_string(entryId);
+    entries.insert(std::make_pair(entryId, std::make_unique<Entry>(
+            busLog,
+            objPath,
+            entryId,
+            (Entry::Level)g_errLevelMap[errMsg],
+            std::move(errMsg),
+            std::move(additionalData))));
+
     efile << "}" << std::endl;
     efile.close();
     return;
