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/device_updater.cpp b/fw-update/device_updater.cpp
index 8c468a1..6123365 100644
--- a/fw-update/device_updater.cpp
+++ b/fw-update/device_updater.cpp
@@ -5,8 +5,12 @@
#include <libpldm/firmware_update.h>
+#include <phosphor-logging/lg2.hpp>
+
#include <functional>
+PHOSPHOR_LOG2_USING;
+
namespace pldm
{
@@ -45,8 +49,8 @@
if (rc)
{
updateManager->requester.markFree(eid, instanceId);
- std::cerr << "encode_request_update_req failed, EID=" << unsigned(eid)
- << ", RC=" << rc << "\n";
+ error("encode_request_update_req failed, EID = {EID}, RC = {RC}", "EID",
+ unsigned(eid), "RC", rc);
// Handle error scenario
}
@@ -55,8 +59,8 @@
std::move(std::bind_front(&DeviceUpdater::requestUpdate, this)));
if (rc)
{
- std::cerr << "Failed to send RequestUpdate request, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error("Failed to send RequestUpdate request, EID = {EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
// Handle error scenario
}
}
@@ -67,8 +71,8 @@
if (response == nullptr || !respMsgLen)
{
// Handle error scenario
- std::cerr << "No response received for RequestUpdate, EID="
- << unsigned(eid) << "\n";
+ error("No response received for RequestUpdate, EID = {EID}", "EID",
+ unsigned(eid));
return;
}
@@ -80,16 +84,15 @@
&fdMetaDataLen, &fdWillSendPkgData);
if (rc)
{
- std::cerr << "Decoding RequestUpdate response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Decoding RequestUpdate response failed, EID = {EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
if (completionCode)
{
- std::cerr << "RequestUpdate response failed with error "
- "completion code, EID="
- << unsigned(eid) << ", CC=" << unsigned(completionCode)
- << "\n";
+ error(
+ "RequestUpdate response failed with error completion code, EID = {EID}, CC = {CC}",
+ "EID", unsigned(eid), "CC", unsigned(completionCode));
return;
}
@@ -168,8 +171,8 @@
if (rc)
{
updateManager->requester.markFree(eid, instanceId);
- std::cerr << "encode_pass_component_table_req failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("encode_pass_component_table_req failed, EID = {EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
// Handle error scenario
}
@@ -179,8 +182,9 @@
std::move(std::bind_front(&DeviceUpdater::passCompTable, this)));
if (rc)
{
- std::cerr << "Failed to send PassComponentTable request, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error(
+ "Failed to send PassComponentTable request, EID = {EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
// Handle error scenario
}
}
@@ -191,8 +195,8 @@
if (response == nullptr || !respMsgLen)
{
// Handle error scenario
- std::cerr << "No response received for PassComponentTable, EID="
- << unsigned(eid) << "\n";
+ error("No response received for PassComponentTable, EID = {EID}", "EID",
+ unsigned(eid));
return;
}
@@ -206,17 +210,17 @@
if (rc)
{
// Handle error scenario
- std::cerr << "Decoding PassComponentTable response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Decoding PassComponentTable response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
if (completionCode)
{
// Handle error scenario
- std::cerr << "PassComponentTable response failed with error "
- "completion code, EID="
- << unsigned(eid) << ", CC=" << unsigned(completionCode)
- << "\n";
+ error(
+ "PassComponentTable response failed with error completion code, EID = {EID}, CC = {CC}",
+ "EID", unsigned(eid), "CC", unsigned(completionCode));
return;
}
// Handle ComponentResponseCode
@@ -294,8 +298,8 @@
if (rc)
{
updateManager->requester.markFree(eid, instanceId);
- std::cerr << "encode_update_component_req failed, EID=" << unsigned(eid)
- << ", RC=" << rc << "\n";
+ error("encode_update_component_req failed, EID={EID}, RC = {RC}", "EID",
+ unsigned(eid), "RC", rc);
// Handle error scenario
}
@@ -304,8 +308,8 @@
std::move(std::bind_front(&DeviceUpdater::updateComponent, this)));
if (rc)
{
- std::cerr << "Failed to send UpdateComponent request, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error("Failed to send UpdateComponent request, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
// Handle error scenario
}
}
@@ -316,8 +320,8 @@
if (response == nullptr || !respMsgLen)
{
// Handle error scenario
- std::cerr << "No response received for updateComponent, EID="
- << unsigned(eid) << "\n";
+ error("No response received for updateComponent, EID={EID}", "EID",
+ unsigned(eid));
return;
}
@@ -333,16 +337,15 @@
&timeBeforeReqFWData);
if (rc)
{
- std::cerr << "Decoding UpdateComponent response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Decoding UpdateComponent response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
if (completionCode)
{
- std::cerr << "UpdateComponent response failed with error "
- "completion code, EID="
- << unsigned(eid) << ", CC=" << unsigned(completionCode)
- << "\n";
+ error(
+ "UpdateComponent response failed with error completion code, EID = {EID}, CC = {CC}",
+ "EID", unsigned(eid), "CC", unsigned(completionCode));
return;
}
}
@@ -359,15 +362,17 @@
&length);
if (rc)
{
- std::cerr << "Decoding RequestFirmwareData request failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Decoding RequestFirmwareData request failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
rc = encode_request_firmware_data_resp(
request->hdr.instance_id, PLDM_ERROR_INVALID_DATA, responseMsg,
sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding RequestFirmwareData response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding RequestFirmwareData response failed, EID = {EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
return response;
}
@@ -377,9 +382,8 @@
const auto& comp = compImageInfos[applicableComponents[componentIndex]];
auto compOffset = std::get<5>(comp);
auto compSize = std::get<6>(comp);
- std::cerr << "offset = " << unsigned(offset)
- << ", length = " << unsigned(length) << "\n";
-
+ error("offset = {OFFSET}, length = {LEN}", "OFFSET", unsigned(offset),
+ "LEN", unsigned(length));
if (length < PLDM_FWUP_BASELINE_TRANSFER_SIZE || length > maxTransferSize)
{
rc = encode_request_firmware_data_resp(
@@ -387,8 +391,9 @@
responseMsg, sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding RequestFirmwareData response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding RequestFirmwareData response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
return response;
}
@@ -400,8 +405,9 @@
sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding RequestFirmwareData response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding RequestFirmwareData response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
return response;
}
@@ -424,8 +430,9 @@
sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding RequestFirmwareData response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding RequestFirmwareData response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return response;
}
@@ -444,15 +451,16 @@
decode_transfer_complete_req(request, payloadLength, &transferResult);
if (rc)
{
- std::cerr << "Decoding TransferComplete request failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Decoding TransferComplete request failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
rc = encode_transfer_complete_resp(request->hdr.instance_id,
PLDM_ERROR_INVALID_DATA, responseMsg,
sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding TransferComplete response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding TransferComplete response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
return response;
}
@@ -464,22 +472,24 @@
if (transferResult == PLDM_FWUP_TRANSFER_SUCCESS)
{
- std::cout << "Component Transfer complete, EID=" << unsigned(eid)
- << ", COMPONENT_VERSION=" << compVersion << "\n";
+ info(
+ "Component Transfer complete, EID = {EID}, COMPONENT_VERSION = {COMP_VERS}",
+ "EID", unsigned(eid), "COMP_VERS", compVersion);
}
else
{
- std::cerr << "Transfer of the component failed, EID=" << unsigned(eid)
- << ", COMPONENT_VERSION=" << compVersion
- << ", TRANSFER_RESULT=" << unsigned(transferResult) << "\n";
+ error(
+ "Transfer of the component failed, EID={EID}, COMPONENT_VERSION = {COMP_VERS}, TRANSFER_RESULT = {TRANS_RES}",
+ "EID", unsigned(eid), "COMP_VERS", compVersion, "TRANS_RES",
+ unsigned(transferResult));
}
rc = encode_transfer_complete_resp(request->hdr.instance_id, completionCode,
responseMsg, sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding TransferComplete response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Encoding TransferComplete response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return response;
}
@@ -497,15 +507,16 @@
auto rc = decode_verify_complete_req(request, payloadLength, &verifyResult);
if (rc)
{
- std::cerr << "Decoding VerifyComplete request failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Decoding VerifyComplete request failed, EID = {EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
rc = encode_verify_complete_resp(request->hdr.instance_id,
PLDM_ERROR_INVALID_DATA, responseMsg,
sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding VerifyComplete response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding VerifyComplete response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
return response;
}
@@ -517,22 +528,24 @@
if (verifyResult == PLDM_FWUP_VERIFY_SUCCESS)
{
- std::cout << "Component verification complete, EID=" << unsigned(eid)
- << ", COMPONENT_VERSION=" << compVersion << "\n";
+ info(
+ "Component verification complete, EID={EID}, COMPONENT_VERSION={COMP_VERS}",
+ "EID", unsigned(eid), "COMP_VERS", compVersion);
}
else
{
- std::cerr << "Component verification failed, EID=" << unsigned(eid)
- << ", COMPONENT_VERSION=" << compVersion
- << ", VERIFY_RESULT=" << unsigned(verifyResult) << "\n";
+ error(
+ "Component verification failed, EID={EID}, COMPONENT_VERSION={COMP_VERS}, VERIFY_RESULT={VERIFY_RES}",
+ "EID", unsigned(eid), "COMP_VERS", compVersion, "VERIFY_RES",
+ unsigned(verifyResult));
}
rc = encode_verify_complete_resp(request->hdr.instance_id, completionCode,
responseMsg, sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding VerifyComplete response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Encoding VerifyComplete response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return response;
}
@@ -552,15 +565,16 @@
&compActivationModification);
if (rc)
{
- std::cerr << "Decoding ApplyComplete request failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Decoding ApplyComplete request failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
rc = encode_apply_complete_resp(request->hdr.instance_id,
PLDM_ERROR_INVALID_DATA, responseMsg,
sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding ApplyComplete response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error(
+ "Encoding ApplyComplete response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
return response;
}
@@ -573,23 +587,25 @@
if (applyResult == PLDM_FWUP_APPLY_SUCCESS ||
applyResult == PLDM_FWUP_APPLY_SUCCESS_WITH_ACTIVATION_METHOD)
{
- std::cout << "Component apply complete, EID=" << unsigned(eid)
- << ", COMPONENT_VERSION=" << compVersion << "\n";
+ info(
+ "Component apply complete, EID = {EID}, COMPONENT_VERSION = {COMP_VERS}",
+ "EID", unsigned(eid), "COMP_VERS", compVersion);
updateManager->updateActivationProgress();
}
else
{
- std::cerr << "Component apply failed, EID=" << unsigned(eid)
- << ", COMPONENT_VERSION=" << compVersion
- << ", APPLY_RESULT=" << unsigned(applyResult) << "\n";
+ error(
+ "Component apply failed, EID = {EID}, COMPONENT_VERSION = {COMP_VERS}, APPLY_RESULT = {APPLY_RES}",
+ "EID", unsigned(eid), "COMP_VERS", compVersion, "APPLY_RES",
+ unsigned(applyResult));
}
rc = encode_apply_complete_resp(request->hdr.instance_id, completionCode,
responseMsg, sizeof(completionCode));
if (rc)
{
- std::cerr << "Encoding ApplyComplete response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Encoding ApplyComplete response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return response;
}
@@ -626,8 +642,8 @@
if (rc)
{
updateManager->requester.markFree(eid, instanceId);
- std::cerr << "encode_activate_firmware_req failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("encode_activate_firmware_req failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
rc = updateManager->handler.registerRequest(
@@ -635,8 +651,8 @@
std::move(std::bind_front(&DeviceUpdater::activateFirmware, this)));
if (rc)
{
- std::cerr << "Failed to send ActivateFirmware request, EID="
- << unsigned(eid) << ", RC=" << rc << "\n ";
+ error("Failed to send ActivateFirmware request, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
}
}
@@ -646,8 +662,8 @@
if (response == nullptr || !respMsgLen)
{
// Handle error scenario
- std::cerr << "No response received for ActivateFirmware, EID="
- << unsigned(eid) << "\n";
+ error("No response received for ActivateFirmware, EID={EID}", "EID",
+ unsigned(eid));
return;
}
@@ -659,17 +675,16 @@
if (rc)
{
// Handle error scenario
- std::cerr << "Decoding ActivateFirmware response failed, EID="
- << unsigned(eid) << ", RC=" << rc << "\n";
+ error("Decoding ActivateFirmware response failed, EID={EID}, RC = {RC}",
+ "EID", unsigned(eid), "RC", rc);
return;
}
if (completionCode)
{
// Handle error scenario
- std::cerr << "ActivateFirmware response failed with error "
- "completion code, EID="
- << unsigned(eid) << ", CC=" << unsigned(completionCode)
- << "\n";
+ error(
+ "ActivateFirmware response failed with error completion code, EID = {EID}, CC = {CC}",
+ "EID", unsigned(eid), "CC", unsigned(completionCode));
return;
}
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
diff --git a/fw-update/package_parser.cpp b/fw-update/package_parser.cpp
index 3d5d066..7a387ad 100644
--- a/fw-update/package_parser.cpp
+++ b/fw-update/package_parser.cpp
@@ -5,11 +5,14 @@
#include <libpldm/firmware_update.h>
#include <libpldm/utils.h>
+#include <phosphor-logging/lg2.hpp>
#include <xyz/openbmc_project/Common/error.hpp>
#include <iostream>
#include <memory>
+PHOSPHOR_LOG2_USING;
+
namespace pldm
{
@@ -39,8 +42,8 @@
&compImageSetVersionStr, &recordDescriptors, &fwDevicePkgData);
if (rc)
{
- std::cerr << "Decoding firmware device ID record failed, RC=" << rc
- << "\n";
+ error("Decoding firmware device ID record failed, RC={RC}", "RC",
+ rc);
throw InternalFailure();
}
@@ -56,9 +59,9 @@
&descriptorType, &descriptorData);
if (rc)
{
- std::cerr
- << "Decoding descriptor type, length and value failed, RC="
- << rc << "\n";
+ error(
+ "Decoding descriptor type, length and value failed, RC={RC}",
+ "RC", rc);
throw InternalFailure();
}
@@ -80,9 +83,9 @@
&descTitleStrType, &descTitleStr, &vendorDefinedDescData);
if (rc)
{
- std::cerr << "Decoding Vendor-defined descriptor value "
- "failed, RC="
- << rc << "\n";
+ error(
+ "Decoding Vendor-defined descriptor value failed, RC={RC}",
+ "RC", rc);
throw InternalFailure();
}
@@ -151,8 +154,8 @@
&compImageInfo, &compVersion);
if (rc)
{
- std::cerr << "Decoding component image information failed, RC="
- << rc << "\n";
+ error("Decoding component image information failed, RC={RC}", "RC",
+ rc);
throw InternalFailure();
}
@@ -194,12 +197,11 @@
if (compLocOffset != calcPkgSize)
{
- std::cerr << "Validating the component location offset failed, "
- "COMP_VERSION="
- << std::get<static_cast<size_t>(
- ComponentImageInfoPos::CompVersionPos)>(
- componentImageInfo)
- << "\n";
+ auto cmpVersion = std::get<static_cast<size_t>(
+ ComponentImageInfoPos::CompVersionPos)>(componentImageInfo);
+ error(
+ "Validating the component location offset failed, COMP_VERSION={COMP_VERS}",
+ "COMP_VERS", cmpVersion);
throw InternalFailure();
}
@@ -208,9 +210,9 @@
if (calcPkgSize != pkgSize)
{
- std::cerr
- << "Package size does not match calculated package size, PKG_SIZE="
- << pkgSize << " ,CALC_PKG_SIZE=" << calcPkgSize << "\n";
+ error(
+ "Package size does not match calculated package size, PKG_SIZE={PKG_SIZE}, CALC_PKG_SIZE={CAL_PKG_SIZE}",
+ "PKG_SIZE", pkgSize, "CAL_PKG_SIZE", calcPkgSize);
throw InternalFailure();
}
}
@@ -220,16 +222,16 @@
{
if (pkgHeaderSize != pkgHdr.size())
{
- std::cerr << "Package header size is invalid, PKG_HDR_SIZE="
- << pkgHeaderSize << "\n";
+ error("Package header size is invalid, PKG_HDR_SIZE={PKG_HDR_SIZE}",
+ "PKG_HDR_SIZE", pkgHeaderSize);
throw InternalFailure();
}
size_t offset = sizeof(pldm_package_header_information) + pkgVersion.size();
if (offset + sizeof(DeviceIDRecordCount) >= pkgHeaderSize)
{
- std::cerr << "Parsing package header failed, PKG_HDR_SIZE="
- << pkgHeaderSize << "\n";
+ error("Parsing package header failed, PKG_HDR_SIZE={PKG_HDR_SIZE}",
+ "PKG_HDR_SIZE", pkgHeaderSize);
throw InternalFailure();
}
@@ -239,15 +241,15 @@
offset = parseFDIdentificationArea(deviceIdRecCount, pkgHdr, offset);
if (deviceIdRecCount != fwDeviceIDRecords.size())
{
- std::cerr
- << "DeviceIDRecordCount entries not found, DEVICE_ID_REC_COUNT="
- << deviceIdRecCount << "\n";
+ error(
+ "DeviceIDRecordCount entries not found, DEVICE_ID_REC_COUNT={DREC_CNT}",
+ "DREC_CNT", deviceIdRecCount);
throw InternalFailure();
}
if (offset + sizeof(ComponentImageCount) >= pkgHeaderSize)
{
- std::cerr << "Parsing package header failed, PKG_HDR_SIZE="
- << pkgHeaderSize << "\n";
+ error("Parsing package header failed, PKG_HDR_SIZE={PKG_HDR_SIZE}",
+ "PKG_HDR_SIZE", pkgHeaderSize);
throw InternalFailure();
}
@@ -258,15 +260,16 @@
offset = parseCompImageInfoArea(compImageCount, pkgHdr, offset);
if (compImageCount != componentImageInfos.size())
{
- std::cerr << "ComponentImageCount entries not found, COMP_IMAGE_COUNT="
- << compImageCount << "\n";
+ error(
+ "ComponentImageCount entries not found, COMP_IMAGE_COUNT={COMP_IMG_CNT}",
+ "COMP_IMG_CNT", compImageCount);
throw InternalFailure();
}
if (offset + sizeof(PackageHeaderChecksum) != pkgHeaderSize)
{
- std::cerr << "Parsing package header failed, PKG_HDR_SIZE="
- << pkgHeaderSize << "\n";
+ error("Parsing package header failed, PKG_HDR_SIZE={PKG_HDR_SIZE}",
+ "PKG_HDR_SIZE", pkgHeaderSize);
throw InternalFailure();
}
@@ -276,8 +279,9 @@
(pkgHdr[offset + 2] << 16) | (pkgHdr[offset + 3] << 24)));
if (calcChecksum != checksum)
{
- std::cerr << "Parsing package header failed, CALC_CHECKSUM="
- << calcChecksum << ", PKG_HDR_CHECKSUM=" << checksum << "\n";
+ error(
+ "Parsing package header failed, CALC_CHECKSUM={CHK_SUM}, PKG_HDR_CHECKSUM={PKG_HDR_CHK_SUM}",
+ "CHK_SUM", calcChecksum, "PKG_HDR_CHK_SUM", checksum);
throw InternalFailure();
}
@@ -297,8 +301,8 @@
&pkgHeader, &pkgVersion);
if (rc)
{
- std::cerr << "Decoding PLDM package header information failed, RC="
- << rc << "\n";
+ error("Decoding PLDM package header information failed, RC={RC}", "RC",
+ rc);
return nullptr;
}
diff --git a/fw-update/test/meson.build b/fw-update/test/meson.build
index b85ed08..9b3cfd6 100644
--- a/fw-update/test/meson.build
+++ b/fw-update/test/meson.build
@@ -27,6 +27,7 @@
libpldmutils,
nlohmann_json,
phosphor_dbus_interfaces,
+ phosphor_logging_dep,
sdbusplus,
sdeventplus]),
workdir: meson.current_source_dir())
diff --git a/fw-update/update_manager.cpp b/fw-update/update_manager.cpp
index e526ba1..412a420 100644
--- a/fw-update/update_manager.cpp
+++ b/fw-update/update_manager.cpp
@@ -4,12 +4,16 @@
#include "common/utils.hpp"
#include "package_parser.hpp"
+#include <phosphor-logging/lg2.hpp>
+
#include <cassert>
#include <cmath>
#include <filesystem>
#include <fstream>
#include <string>
+PHOSPHOR_LOG2_USING;
+
namespace pldm
{
@@ -35,9 +39,9 @@
if (activation->activation() ==
software::Activation::Activations::Activating)
{
- std::cerr
- << "Activation of PLDM FW update package already in progress"
- << ", PACKAGE_VERSION=" << parser->pkgVersion << "\n";
+ error(
+ "Activation of PLDM FW update package already in progress, PACKAGE_VERSION={PKG_VERS}",
+ "PKG_VERS", parser->pkgVersion);
std::filesystem::remove(packageFilePath);
return -1;
}
@@ -51,9 +55,9 @@
std::ios::binary | std::ios::in | std::ios::ate);
if (!package.good())
{
- std::cerr << "Opening the PLDM FW update package failed, ERR="
- << unsigned(errno) << ", PACKAGEFILE=" << packageFilePath
- << "\n";
+ error(
+ "Opening the PLDM FW update package failed, ERR={ERR}, PACKAGEFILE={PKG_FILE}",
+ "ERR", unsigned(errno), "PKG_FILE", packageFilePath.c_str());
package.close();
std::filesystem::remove(packageFilePath);
return -1;
@@ -62,9 +66,9 @@
uintmax_t packageSize = package.tellg();
if (packageSize < sizeof(pldm_package_header_information))
{
- std::cerr << "PLDM FW update package length less than the length of "
- "the package header information, PACKAGESIZE="
- << packageSize << "\n";
+ error(
+ "PLDM FW update package length less than the length of the package header information, PACKAGESIZE={PKG_SIZE}",
+ "PKG_SIZE", packageSize);
package.close();
std::filesystem::remove(packageFilePath);
return -1;
@@ -89,8 +93,7 @@
parser = parsePkgHeader(packageHeader);
if (parser == nullptr)
{
- std::cerr << "Invalid PLDM package header information"
- << "\n";
+ error("Invalid PLDM package header information");
package.close();
std::filesystem::remove(packageFilePath);
return -1;
@@ -110,8 +113,7 @@
}
catch (const std::exception& e)
{
- std::cerr << "Invalid PLDM package header"
- << "\n";
+ error("Invalid PLDM package header");
activation = std::make_unique<Activation>(
pldm::utils::DBusHandler::getBus(), objPath,
software::Activation::Activations::Invalid, this);
@@ -125,9 +127,8 @@
totalNumComponentUpdates);
if (!deviceUpdaterInfos.size())
{
- std::cerr
- << "No matching devices found with the PLDM firmware update package"
- << "\n";
+ error(
+ "No matching devices found with the PLDM firmware update package");
activation = std::make_unique<Activation>(
pldm::utils::DBusHandler::getBus(), objPath,
software::Activation::Activations::Invalid, this);
@@ -203,11 +204,10 @@
}
auto endTime = std::chrono::steady_clock::now();
- std::cerr << "Firmware update time: "
- << std::chrono::duration<double, std::milli>(endTime -
- startTime)
- .count()
- << " ms\n";
+ auto dur =
+ std::chrono::duration<double, std::milli>(endTime - startTime)
+ .count();
+ error("Firmware update time: {DURATION}ms", "DURATION", dur);
activation->activation(software::Activation::Activations::Active);
}
return;