blob: b95131404d17f66b105e6281326b9459e797f4ff [file] [log] [blame]
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -05001#include "logger.hpp"
2
3#include <sstream>
4
5namespace vpd
6{
Sunny Srivastava5779d972025-08-08 01:45:23 -05007std::shared_ptr<Logger> Logger::m_loggerInstance;
8
9void Logger::logMessage(std::string_view i_message,
10 const PlaceHolder& i_placeHolder,
11 const types::PelInfoTuple* i_pelTuple,
12 const std::source_location& i_location)
13{
14 std::ostringstream l_log;
15 l_log << "FileName: " << i_location.file_name() << ","
16 << " Line: " << i_location.line() << " " << i_message;
17
Souvik Roya5e18b82025-09-25 05:59:56 +000018 if ((i_placeHolder == PlaceHolder::COLLECTION) && m_collectionLogger)
Sunny Srivastava5779d972025-08-08 01:45:23 -050019 {
20 // Log it to a specific place.
Souvik Roya8c3c092025-09-11 10:49:29 +000021 m_collectionLogger->logMessage(l_log.str());
Sunny Srivastava5779d972025-08-08 01:45:23 -050022 }
23 else if (i_placeHolder == PlaceHolder::PEL)
24 {
25 if (i_pelTuple)
26 {
27 // LOG PEL
28 // This should call create PEL API from the event logger.
29 return;
30 }
31 std::cout << "Pel info tuple required to log PEL for message <" +
32 l_log.str() + ">"
33 << std::endl;
34 }
Souvik Roya5e18b82025-09-25 05:59:56 +000035 else if ((i_placeHolder == PlaceHolder::VPD_WRITE) && m_vpdWriteLogger)
36 {
Souvik Roya8c3c092025-09-11 10:49:29 +000037 m_vpdWriteLogger->logMessage(l_log.str());
Souvik Roya5e18b82025-09-25 05:59:56 +000038 }
Sunny Srivastava5779d972025-08-08 01:45:23 -050039 else
40 {
41 // Default case, let it go to journal.
42 std::cout << l_log.str() << std::endl;
43 }
44}
45
Souvik Roya5e18b82025-09-25 05:59:56 +000046void Logger::initiateVpdCollectionLogging() noexcept
47{
48 try
49 {
50 /* TODO:
51 - check /var/lib/vpd for number "collection.*" log file
52 - if 3 collection_[0-2].log files are found
53 - delete collection_1.log
54 - create collection logger object with collection_1.log
55 parameter
56 - else
57 - create collection logger object with collection_(n+1).log
58 parameter*/
59 }
60 catch (const std::exception& l_ex)
61 {
62 logMessage("Failed to initialize collection logger. Error: " +
63 std::string(l_ex.what()));
64 }
65}
66
Souvik Roya8c3c092025-09-11 10:49:29 +000067void ILogFileHandler::rotateFile(
68 [[maybe_unused]] const unsigned i_numEntriesToDelete)
69{}
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050070namespace logging
71{
72void logMessage(std::string_view message, const std::source_location& location)
73{
74 std::ostringstream log;
75 log << "FileName: " << location.file_name() << ","
76 << " Line: " << location.line() << " " << message;
77
Sunny Srivastavafa5e4d32023-03-12 11:59:49 -050078 std::cout << log.str() << std::endl;
79}
80} // namespace logging
81} // namespace vpd