diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | log_manager.cpp | 17 | ||||
-rw-r--r-- | log_manager.hpp | 5 | ||||
-rw-r--r-- | tools/phosphor-logging/templates/elog-lookup-template.mako.cpp | 5 |
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 |