summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--log_manager.cpp17
-rw-r--r--log_manager.hpp5
-rw-r--r--tools/phosphor-logging/templates/elog-lookup-template.mako.cpp5
4 files changed, 22 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am
index f2c44d9..40f780d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -31,6 +31,7 @@ phosphor_log_manager_SOURCES = \
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 @@ void Manager::commit(uint64_t transactionId, std::string errMsg)
}
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 @@ void Manager::commit(uint64_t transactionId, std::string errMsg)
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 phosphor
{
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 phosphor
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 @@ std::map<std::string,std::vector<std::string>> g_errMetaMap = {
% 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
OpenPOWER on IntegriCloud