PLDM: Implementing Phosphor-Logging/LG2 logging
This commit adds changes in PLDM for implementing
structured LG2 logging, thereby moving away from
std::cout/cerr practice of logging which are
output streams and not logging mechanism.
PLDM now can make use of lg2 features like accurate
CODE LINE Number and CODE_FUNCTION Name and better
detailing in json object values which can be used in
log tracking.
More detailed logging change:
https://gist.github.com/riyadixitagra/c251685c1ba84248181891f7bc282395
Tested:
Ran a power off, on, cycle, and reset-reload.
Change-Id: I0485035f15f278c3fd172f0581b053c1c37f3a5b
Signed-off-by: Riya Dixit <riyadixitagra@gmail.com>
diff --git a/fw-update/inventory_manager.cpp b/fw-update/inventory_manager.cpp
index a8ddb46..ea80e69 100644
--- a/fw-update/inventory_manager.cpp
+++ b/fw-update/inventory_manager.cpp
@@ -5,14 +5,16 @@
#include <libpldm/firmware_update.h>
+#include <phosphor-logging/lg2.hpp>
+
#include <functional>
+PHOSPHOR_LOG2_USING;
+
namespace pldm
{
-
namespace fw_update
{
-
void InventoryManager::discoverFDs(const std::vector<mctp_eid_t>& eids)
{
for (const auto& eid : eids)
@@ -26,8 +28,9 @@
if (rc)
{
requester.markFree(eid, instanceId);
- std::cerr << "encode_query_device_identifiers_req failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "encode_query_device_identifiers_req failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
continue;
}
@@ -38,8 +41,9 @@
this)));
if (rc)
{
- std::cerr << "Failed to send QueryDeviceIdentifiers request, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error(
+ "Failed to send QueryDeviceIdentifiers request, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
}
}
@@ -50,8 +54,8 @@
{
if (response == nullptr || !respMsgLen)
{
- std::cerr << "No response received for QueryDeviceIdentifiers, EID="
- << unsigned(eid) << "\n";
+ error("No response received for QueryDeviceIdentifiers, EID={EID}",
+ "EID", unsigned(eid));
return;
}
@@ -65,17 +69,17 @@
&descriptorCount, &descriptorPtr);
if (rc)
{
- std::cerr << "Decoding QueryDeviceIdentifiers response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Decoding QueryDeviceIdentifiers response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
if (completionCode)
{
- std::cerr << "QueryDeviceIdentifiers response failed with error "
- "completion code, EID="
- << unsigned(eid) << ", CC=" << unsigned(completionCode)
- << "\n";
+ error(
+ "QueryDeviceIdentifiers response failed with error completion code, EID={EID}, CC = {CC}",
+ "EID", unsigned(eid), "CC", unsigned(completionCode));
return;
}
@@ -90,9 +94,9 @@
&descriptorData);
if (rc)
{
- std::cerr
- << "Decoding descriptor type, length and value failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error(
+ "Decoding descriptor type, length and value failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
@@ -114,9 +118,9 @@
&vendorDefinedDescriptorData);
if (rc)
{
- std::cerr
- << "Decoding Vendor-defined descriptor value failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error(
+ "Decoding Vendor-defined descriptor value failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
@@ -155,8 +159,8 @@
if (rc)
{
requester.markFree(eid, instanceId);
- std::cerr << "encode_get_firmware_parameters_req failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("encode_get_firmware_parameters_req failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
@@ -167,8 +171,9 @@
std::bind_front(&InventoryManager::getFirmwareParameters, this)));
if (rc)
{
- std::cerr << "Failed to send GetFirmwareParameters request, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error(
+ "Failed to send GetFirmwareParameters request, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
}
@@ -178,8 +183,8 @@
{
if (response == nullptr || !respMsgLen)
{
- std::cerr << "No response received for GetFirmwareParameters, EID="
- << unsigned(eid) << "\n";
+ error("No response received for GetFirmwareParameters, EID={EID}",
+ "EID", unsigned(eid));
descriptorMap.erase(eid);
return;
}
@@ -194,17 +199,17 @@
&pendingCompImageSetVerStr, &compParamTable);
if (rc)
{
- std::cerr << "Decoding GetFirmwareParameters response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Decoding GetFirmwareParameters response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
if (fwParams.completion_code)
{
- std::cerr << "GetFirmwareParameters response failed with error "
- "completion code, EID="
- << unsigned(eid)
- << ", CC=" << unsigned(fwParams.completion_code) << "\n";
+ error(
+ "GetFirmwareParameters response failed with error completion code, EID={EID}, CC = {CC}",
+ "EID", unsigned(eid), "CC", unsigned(fwParams.completion_code));
return;
}
@@ -222,8 +227,9 @@
&pendingCompVerStr);
if (rc)
{
- std::cerr << "Decoding component parameter table entry failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Decoding component parameter table entry failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
@@ -242,4 +248,4 @@
} // namespace fw_update
-} // namespace pldm
\ No newline at end of file
+} // namespace pldm