Implementing Phosphor-Logging/LG2 logging
This commit introduces changes in the phosphor-debug-collector
repository to implement structured logging using the LG2
framework. The existing log calls in the repository,
have been replaced with LG2 logging, facilitates better
log tracking and troubleshooting by offering improved
detail in JSON object values.
Test:
- Created BMC dump
- Created system dump
Here is a example
{
"_EXE" : "/tmp/phosphor-dump-manager",
"_MACHINE_ID" : "f9ca96d99c7b4ba688556f632ffeff5d",
"_CAP_EFFECTIVE" : "1ffffffffff",
"LOG2_FMTMSG" : "Invalid Dump file name, FILENAME: {FILENAME}",
"__CURSOR" : "s=721ae7a5b6ed43ec904f2bb03e3c0403;i=2a8d0;\
b=b372b9a5989e46bb8e62b33310e181ea;m=2c05fda2b;t=5fdf0684c1e70;x=1592f60584d6486c",
"CODE_FUNC" : "void phosphor::dump::bmc::Manager::\
createEntry(const std::filesystem::__cxx11::path&)",
"_SYSTEMD_SLICE" : "system-dropbear.slice",
"CODE_LINE" : "174",
"__REALTIME_TIMESTAMP" : "1686583867350640",
"PRIORITY" : "3",
"_SYSTEMD_UNIT" : "dropbear@1-9.3.29.238:22-9.3.84.138:45432.service",
"_PID" : "16209",
"_BOOT_ID" : "b372b9a5989e46bb8e62b33310e181ea",
"_SOURCE_REALTIME_TIMESTAMP" : "1686583867350580",
"_TRANSPORT" : "journal",
"_HOSTNAME" : "openbmc",
"SYSLOG_IDENTIFIER" : "phosphor-dump-manager",
"MESSAGE" : "Invalid Dump file name, \
FILENAME: BMCDUMP.XXXXXXX.0000006.20230612153010",
"CODE_FILE" : \
"/usr/src/debug/phosphor-debug-collector/1.0+gitAUTOINC+a17f1c92ce-r1\
/dump_manager_bmc.cpp",
"_UID" : "0",
"_CMDLINE" : "/tmp/phosphor-dump-manager",
"_RUNTIME_SCOPE" : "system",
"FILENAME" : "BMCDUMP.XXXXXXXX.0000006.20230612153010",
"_SYSTEMD_INVOCATION_ID" : "64a11629aade4c96ab62154cbc4be8b7",
"__MONOTONIC_TIMESTAMP" : "11817441835",
"_SYSTEMD_CGROUP" : "/system.slice/system-dropbear.slice/\
dropbear@1-9.3.29.238:22-9.3.84.138:45432.service",
"_COMM" : "phosphor-dump-m",
"_GID" : "0"
}
Change-Id: I3a52b812b059b64d945493de2e2cc68a43f6d72a
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.cpp b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
index 3a98d9e..17125fe 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
@@ -4,9 +4,8 @@
#include "host_transport_exts.hpp"
#include "op_dump_consts.hpp"
-#include <fmt/core.h>
-
#include <phosphor-logging/elog-errors.hpp>
+#include <phosphor-logging/lg2.hpp>
#include <xyz/openbmc_project/Common/error.hpp>
namespace openpower
@@ -26,11 +25,9 @@
using NotAllowed =
sdbusplus::xyz::openbmc_project::Common::Error::NotAllowed;
using Reason = xyz::openbmc_project::Common::NotAllowed::REASON;
- log<level::INFO>(
- fmt::format(
- "Resource dump offload request id({}) uri({}) source dumpid({})",
- id, uri, sourceDumpId())
- .c_str());
+ lg2::info("Resource dump offload request id: {ID} uri: {URI} "
+ "source dumpid: {SOURCE_DUMP_ID}",
+ "ID", id, "URI", uri, "SOURCE_DUMP_ID", sourceDumpId());
if (!phosphor::dump::isHostRunning())
{
@@ -49,19 +46,16 @@
if ((!offloadUri().empty()) && (phosphor::dump::isHostRunning()))
{
- log<level::ERR>(
- fmt::format("Dump offload is in progress, cannot delete "
- "dump, id({}) srcdumpid({})",
- dumpId, srcDumpID)
- .c_str());
+ lg2::error("Dump offload is in progress, cannot delete dump, "
+ "id: {DUMP_ID} srcdumpid: {SRC_DUMP_ID}",
+ "DUMP_ID", dumpId, "SRC_DUMP_ID", srcDumpID);
elog<sdbusplus::xyz::openbmc_project::Common::Error::NotAllowed>(
xyz::openbmc_project::Common::NotAllowed::REASON(
"Dump offload is in progress"));
}
- log<level::INFO>(fmt::format("Resource dump delete id({}) srcdumpid({})",
- dumpId, srcDumpID)
- .c_str());
+ lg2::info("Resource dump delete id: {DUMP_ID} srcdumpid: {SRC_DUMP_ID}",
+ "DUMP_ID", dumpId, "SRC_DUMP_ID", srcDumpID);
// Remove resource dump when host is up by using source dump id
@@ -75,10 +69,9 @@
}
catch (const std::exception& e)
{
- log<level::ERR>(fmt::format("Error deleting dump from host id({}) "
- "host id({}) error({})",
- dumpId, srcDumpID, e.what())
- .c_str());
+ lg2::error("Error deleting dump from host id: {DUMP_ID} "
+ "host id: {SRC_DUMP_ID} error: {ERROR}",
+ "DUMP_ID", dumpId, "SRC_DUMP_ID", srcDumpID, "ERROR", e);
elog<sdbusplus::xyz::openbmc_project::Common::Error::Unavailable>();
}
}