Logger changes for VPD collection and write logs
This commit includes changes in Logger class for handling VPD collection
and VPD write logs. VPD collection and VPD write logs need to be handled
by different LogFileHandler instances. This commit also adds public
methods to initiate and terminate VPD collection logging. These methods
are required to control start and stop of VPD collection logs.
Change-Id: Idcc2da3d600819c8e88543a5d45161b9642634ad
Signed-off-by: Souvik Roy <souvikroyofficial10@gmail.com>
diff --git a/vpd-manager/src/logger.cpp b/vpd-manager/src/logger.cpp
index 62d4e9e..0c189bf 100644
--- a/vpd-manager/src/logger.cpp
+++ b/vpd-manager/src/logger.cpp
@@ -15,10 +15,10 @@
l_log << "FileName: " << i_location.file_name() << ","
<< " Line: " << i_location.line() << " " << i_message;
- if (i_placeHolder == PlaceHolder::COLLECTION)
+ if ((i_placeHolder == PlaceHolder::COLLECTION) && m_collectionLogger)
{
// Log it to a specific place.
- m_logFileHandler->writeLogToFile(i_placeHolder);
+ m_collectionLogger->writeLogToFile(i_placeHolder);
}
else if (i_placeHolder == PlaceHolder::PEL)
{
@@ -32,6 +32,10 @@
l_log.str() + ">"
<< std::endl;
}
+ else if ((i_placeHolder == PlaceHolder::VPD_WRITE) && m_vpdWriteLogger)
+ {
+ m_vpdWriteLogger->writeLogToFile(i_placeHolder);
+ }
else
{
// Default case, let it go to journal.
@@ -39,6 +43,27 @@
}
}
+void Logger::initiateVpdCollectionLogging() noexcept
+{
+ try
+ {
+ /* TODO:
+ - check /var/lib/vpd for number "collection.*" log file
+ - if 3 collection_[0-2].log files are found
+ - delete collection_1.log
+ - create collection logger object with collection_1.log
+ parameter
+ - else
+ - create collection logger object with collection_(n+1).log
+ parameter*/
+ }
+ catch (const std::exception& l_ex)
+ {
+ logMessage("Failed to initialize collection logger. Error: " +
+ std::string(l_ex.what()));
+ }
+}
+
namespace logging
{
void logMessage(std::string_view message, const std::source_location& location)