diff --git a/Makefile.am b/Makefile.am
index f2c44d9..40f780d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -31,6 +31,7 @@
 	xyz/openbmc_project/Logging/Internal/Manager/server.cpp \
 	log_manager.cpp \
 	log_manager_main.cpp \
+	elog-lookup.cpp \
 	elog_entry.cpp \
 	org.openbmc.Associations.cpp \
 	elog-process-metadata.cpp
diff --git a/log_manager.cpp b/log_manager.cpp
index 21111a0..e497ae0 100644
--- a/log_manager.cpp
+++ b/log_manager.cpp
@@ -8,7 +8,6 @@
 #include <sdbusplus/vtable.hpp>
 #include <systemd/sd-bus.h>
 #include <systemd/sd-journal.h>
-#include "elog-lookup.cpp"
 #include <phosphor-logging/elog-errors-HostEvent.hpp>
 #include "config.h"
 #include "elog_entry.hpp"
@@ -43,8 +42,12 @@
     }
 
     std::string transactionIdStr = std::to_string(transactionId);
-    std::set<std::string> metalist(g_errMetaMap[errMsg].begin(),
-                                   g_errMetaMap[errMsg].end());
+    std::set<std::string> metalist;
+    auto metamap = g_errMetaMap.find(errMsg);
+    if (metamap != g_errMetaMap.end())
+    {
+        metalist.insert(metamap->second.begin(), metamap->second.end());
+    }
     const auto& metalistHostEvent = g_errMetaMapHostEvent[errMsg];
     std::vector<std::string> additionalData;
 
@@ -136,12 +139,18 @@
     AssociationList objects {};
     processMetadata(errMsg, additionalData, objects);
 
+    level reqLevel = level::INFO; // Default to INFO
+    auto levelmap = g_errLevelMap.find(errMsg);
+    if (levelmap != g_errLevelMap.end())
+    {
+        reqLevel = levelmap->second;
+    }
     entries.insert(std::make_pair(entryId, std::make_unique<Entry>(
             busLog,
             objPath,
             entryId,
             ms, // Milliseconds since 1970
-            (Entry::Level)g_errLevelMap[errMsg],
+            static_cast<Entry::Level>(reqLevel),
             std::move(errMsg),
             std::move(additionalData),
             std::move(objects))));
diff --git a/log_manager.hpp b/log_manager.hpp
index 285b337..e2a3359 100644
--- a/log_manager.hpp
+++ b/log_manager.hpp
@@ -1,6 +1,7 @@
 #pragma once
 
 #include <sdbusplus/bus.hpp>
+#include <phosphor-logging/log.hpp>
 #include "elog_entry.hpp"
 #include "xyz/openbmc_project/Logging/Internal/Manager/server.hpp"
 
@@ -8,6 +9,10 @@
 {
 namespace logging
 {
+
+extern const std::map<std::string,std::vector<std::string>> g_errMetaMap;
+extern const std::map<std::string,level> g_errLevelMap;
+
 namespace details
 {
 
diff --git a/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp b/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp
index 5e9e1ba..efa5278 100644
--- a/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp
+++ b/tools/phosphor-logging/templates/elog-lookup-template.mako.cpp
@@ -4,6 +4,7 @@
 // See elog-gen.py for more details
 #include <map>
 #include <vector>
+#include <log_manager.hpp>
 #include <phosphor-logging/log.hpp>
 
 namespace phosphor
@@ -12,7 +13,7 @@
 namespace logging
 {
 
-std::map<std::string,std::vector<std::string>> g_errMetaMap = {
+const std::map<std::string,std::vector<std::string>> g_errMetaMap = {
     % for name in errors:
 <%
     meta_list = []
@@ -33,7 +34,7 @@
     % endfor
 };
 
-std::map<std::string,level> g_errLevelMap = {
+const std::map<std::string,level> g_errLevelMap = {
     % for a in errors:
     {"${a}",level::${error_lvl[a]}},
     % endfor
