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_manager_faultlog.hpp b/dump_manager_faultlog.hpp
index 72dce08..62b0574 100644
--- a/dump_manager_faultlog.hpp
+++ b/dump_manager_faultlog.hpp
@@ -2,10 +2,9 @@
#include "dump_manager.hpp"
-#include <fmt/core.h>
-
#include <phosphor-logging/elog-errors.hpp>
#include <phosphor-logging/elog.hpp>
+#include <phosphor-logging/lg2.hpp>
#include <sdbusplus/bus.hpp>
#include <sdbusplus/server/object.hpp>
#include <xyz/openbmc_project/Dump/Create/server.hpp>
@@ -54,11 +53,12 @@
if (ec)
{
- log<level::ERR>(fmt::format("dump_manager_faultlog directory {} "
- "not created. error_code = {} ({})",
- FAULTLOG_DUMP_PATH, ec.value(),
- ec.message())
- .c_str());
+ auto dir = FAULTLOG_DUMP_PATH;
+ lg2::error(
+ "dump_manager_faultlog directory {DIRECTORY} not created. "
+ "error_code = {ERRNO} ({ERROR_MESSAGE})",
+ "DIRECTORY", dir, "ERRNO", ec.value(), "ERROR_MESSAGE",
+ ec.message());
}
}
@@ -66,7 +66,7 @@
{
// TODO phosphor-debug-collector/issues/21: Restore fault log entries
// after service restart
- log<level::INFO>("dump_manager_faultlog restore not implemented");
+ lg2::info("dump_manager_faultlog restore not implemented");
}
/** @brief Method to create a new fault log dump entry