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/oem/ibm/libpldmresponder/file_io_type_cert.cpp b/oem/ibm/libpldmresponder/file_io_type_cert.cpp
index d396abe..8d9b73e 100644
--- a/oem/ibm/libpldmresponder/file_io_type_cert.cpp
+++ b/oem/ibm/libpldmresponder/file_io_type_cert.cpp
@@ -6,8 +6,12 @@
#include <libpldm/file_io.h>
#include <stdint.h>
+#include <phosphor-logging/lg2.hpp>
+
#include <iostream>
+PHOSPHOR_LOG2_USING;
+
namespace pldm
{
using namespace utils;
@@ -27,8 +31,9 @@
auto it = certMap.find(certType);
if (it == certMap.end())
{
- std::cerr << "CertHandler::writeFromMemory:file for type " << certType
- << " doesn't exist\n";
+ error(
+ "CertHandler::writeFromMemory:file for type {CERT_TYPE} doesn't exist",
+ "CERT_TYPE", certType);
return PLDM_ERROR;
}
@@ -69,9 +74,9 @@
int CertHandler::read(uint32_t offset, uint32_t& length, Response& response,
oem_platform::Handler* /*oemPlatformHandler*/)
{
- std::cout
- << "CertHandler::read:Read file response for Sign CSR, file handle: "
- << fileHandle << std::endl;
+ info(
+ "CertHandler::read:Read file response for Sign CSR, file handle: {FILE_HANDLE}",
+ "FILE_HANDLE", fileHandle);
std::string filePath = certFilePath;
filePath += "CSR_" + std::to_string(fileHandle);
if (certType != PLDM_FILE_TYPE_CERT_SIGNING_REQUEST)
@@ -93,8 +98,8 @@
auto it = certMap.find(certType);
if (it == certMap.end())
{
- std::cerr << "CertHandler::write:file for type " << certType
- << " doesn't exist\n";
+ error("CertHandler::write:file for type {CERT_TYPE} doesn't exist",
+ "CERT_TYPE", certType);
return PLDM_ERROR;
}
@@ -102,15 +107,16 @@
int rc = lseek(fd, offset, SEEK_SET);
if (rc == -1)
{
- std::cerr << "CertHandler::write:lseek failed, ERROR=" << errno
- << ", OFFSET=" << offset << "\n";
+ error("CertHandler::write:lseek failed, ERROR={ERR}, OFFSET={OFFSET}",
+ "ERR", errno, "OFFSET", offset);
return PLDM_ERROR;
}
rc = ::write(fd, buffer, length);
if (rc == -1)
{
- std::cerr << "CertHandler::write:file write failed, ERROR=" << errno
- << ", LENGTH=" << length << ", OFFSET=" << offset << "\n";
+ error(
+ "CertHandler::write:file write failed, ERROR={ERR}, LENGTH={LEN}, OFFSET={OFFSET}",
+ "ERR", errno, "LEN", length, "OFFSET", offset);
return PLDM_ERROR;
}
length = rc;
@@ -150,10 +156,9 @@
}
catch (const std::exception& e)
{
- std::cerr
- << "CertHandler::write:failed to set Client certificate, "
- "ERROR="
- << e.what() << "\n";
+ error(
+ "CertHandler::write:failed to set Client certificate, ERROR={ERR_EXCEP}",
+ "ERR_EXCEP", e.what());
return PLDM_ERROR;
}
PropertyValue valueStatus{
@@ -163,18 +168,17 @@
certEntryIntf, "Status", "string"};
try
{
- std::cout
- << "CertHandler::write:Client cert write, status: complete. File handle: "
- << fileHandle << std::endl;
+ info(
+ "CertHandler::write:Client cert write, status: complete. File handle: {FILE_HANDLE}",
+ "FILE_HANDLE", fileHandle);
pldm::utils::DBusHandler().setDbusProperty(dbusMappingStatus,
valueStatus);
}
catch (const std::exception& e)
{
- std::cerr
- << "CertHandler::write:failed to set status property of certicate entry, "
- "ERROR="
- << e.what() << "\n";
+ error(
+ "CertHandler::write:failed to set status property of certicate entry, ERROR={ERR_EXCEP}",
+ "ERR_EXCEP", e.what());
return PLDM_ERROR;
}
fs::remove(filePath);
@@ -186,17 +190,16 @@
certEntryIntf, "Status", "string"};
try
{
- std::cout
- << "CertHandler::write:Client cert write, status: Bad CSR. File handle: "
- << fileHandle << std::endl;
+ info(
+ "CertHandler::write:Client cert write, status: Bad CSR. File handle: {FILE_HANDLE}",
+ "FILE_HANDLE", fileHandle);
pldm::utils::DBusHandler().setDbusProperty(dbusMapping, value);
}
catch (const std::exception& e)
{
- std::cerr
- << "CertHandler::write:failed to set status property of certicate entry, "
- "ERROR="
- << e.what() << "\n";
+ error(
+ "CertHandler::write:failed to set status property of certicate entry, {ERR_EXCEP}",
+ "ERR_EXCEP", e.what());
return PLDM_ERROR;
}
}
@@ -219,9 +222,9 @@
}
if (certType == PLDM_FILE_TYPE_SIGNED_CERT)
{
- std::cout
- << "CertHandler::newFileAvailable:new file available client cert file, file handle: "
- << fileHandle << std::endl;
+ info(
+ "CertHandler::newFileAvailable:new file available client cert file, file handle: {FILE_HANDLE}",
+ "FILE_HANDLE", fileHandle);
fileFd = open(
(filePath + "ClientCert_" + std::to_string(fileHandle)).c_str(),
flags, S_IRUSR | S_IWUSR);
@@ -233,9 +236,9 @@
}
if (fileFd == -1)
{
- std::cerr
- << "CertHandler::newFileAvailable:failed to open file for type "
- << certType << " ERROR=" << errno << "\n";
+ error(
+ "CertHandler::newFileAvailable:failed to open file for type {CERT_TYPE} ERROR={ERR}",
+ "CERT_TYPE", certType, "ERR", errno);
return PLDM_ERROR;
}
certMap.emplace(certType, std::tuple(fileFd, length));
@@ -263,18 +266,18 @@
{
if (metaDataValue1 == PLDM_SUCCESS)
{
- std::cerr
- << "CertHandler::newFileAvailableWithMetaData:new file available client cert file, file handle: "
- << fileHandle << std::endl;
+ error(
+ "CertHandler::newFileAvailableWithMetaData:new file available client cert file, file handle: {FILE_HANDLE}",
+ "FILE_HANDLE", fileHandle);
fileFd = open(
(filePath + "ClientCert_" + std::to_string(fileHandle)).c_str(),
flags, S_IRUSR | S_IWUSR);
}
else if (metaDataValue1 == PLDM_INVALID_CERT_DATA)
{
- std::cerr
- << "newFileAvailableWithMetaData:client cert file Invalid data, file handle: "
- << fileHandle << std::endl;
+ error(
+ "newFileAvailableWithMetaData:client cert file Invalid data, file handle: {FILE_HANDLE}",
+ "FILE_HANDLE", fileHandle);
DBusMapping dbusMapping{certObjPath + std::to_string(fileHandle),
certEntryIntf, "Status", "string"};
std::string status = "xyz.openbmc_project.Certs.Entry.State.BadCSR";
@@ -285,10 +288,9 @@
}
catch (const std::exception& e)
{
- std::cerr
- << "newFileAvailableWithMetaData:Failed to set status property of certicate entry, "
- "ERROR="
- << e.what() << "\n";
+ error(
+ "newFileAvailableWithMetaData:Failed to set status property of certicate entry, ERROR= {ERR_EXCEP}",
+ "ERR_EXCEP", e.what());
return PLDM_ERROR;
}
}
@@ -300,9 +302,9 @@
}
if (fileFd == -1)
{
- std::cerr
- << "newFileAvailableWithMetaData:failed to open file for type "
- << certType << " ERROR=" << errno << "\n";
+ error(
+ "newFileAvailableWithMetaData:failed to open file for type {CERT_TYPE} ERROR={ERR}",
+ "CERT_TYPE", certType, "ERR", errno);
return PLDM_ERROR;
}
certMap.emplace(certType, std::tuple(fileFd, length));
@@ -334,10 +336,9 @@
}
catch (const std::exception& e)
{
- std::cerr
- << "CertHandler::fileAckWithMetaData:Failed to set status property of certicate entry, "
- "ERROR="
- << e.what() << "\n";
+ error(
+ "CertHandler::fileAckWithMetaData:Failed to set status property of certicate entry, ERROR={ERR_EXCEP}",
+ "ERR_EXCEP", e.what());
return PLDM_ERROR;
}
}