1#ifndef __PROBLEMGENERATIONLOGGER_H__
2#define __PROBLEMGENERATIONLOGGER_H__
14#include "antares-xpansion/xpansion_interfaces/ILogger.h"
15#include "antares-xpansion/xpansion_interfaces/LoggerUtils.h"
17namespace ProblemGenerationLog
26 LogUtils::LOGLEVEL level,
27 const std::string& context)
override
29 void PrintIterationSeparatorBegin()
override = 0;
30 void PrintIterationSeparatorEnd()
override = 0;
32 virtual std::ostream& GetOstreamObject() = 0;
34 LogUtils::LOGGERTYPE Type()
const
40 void SetType(
const LogUtils::LOGGERTYPE& type)
46 LogUtils::LOGGERTYPE type_ = LogUtils::LOGGERTYPE::NONE;
49using ProblemGenerationILoggerSharedPointer = std::shared_ptr<ProblemGenerationILogger>;
54 std::filesystem::path logFilePath_;
55 std::ofstream logFile_;
66 const LogUtils::LOGLEVEL log_level,
67 const std::string& context)
override;
68 void PrintIterationSeparatorBegin()
override;
69 void PrintIterationSeparatorEnd()
override;
70 std::ostream& GetOstreamObject()
override;
76 std::ostream& stream_;
83 const LogUtils::LOGLEVEL log_level,
84 const std::string& context)
override;
85 void PrintIterationSeparatorBegin()
override;
86 void PrintIterationSeparatorEnd()
override;
87 std::ostream& GetOstreamObject()
override;
93 LogUtils::LOGLEVEL log_level_;
94 std::string context_ =
"Unknown Context";
104 void AddLogger(
const ProblemGenerationILoggerSharedPointer& logger);
107 const LogUtils::LOGLEVEL log_level,
108 const std::string& context)
override;
109 void PrintIterationSeparatorBegin()
override;
110 void PrintIterationSeparatorEnd()
override;
111 void setLogLevel(
const LogUtils::LOGLEVEL log_level);
113 void setContext(
const std::string& context)
118 const std::string& getContext()
const;
122 return (*
this) << log_level;
127 return (*
this) << PrefixMessage(log_level_, context_);
143 std::list<ProblemGenerationILoggerSharedPointer> loggers_;
144 std::set<ProblemGenerationILoggerSharedPointer> enabled_loggers_;
145 void update_enabled_logger();
146 bool try_to_add_logger_to_enabled_list(
const ProblemGenerationILoggerSharedPointer& logger);
152 for (
const auto& subLogger: enabled_loggers_)
154 subLogger->GetOstreamObject() << t;
159std::shared_ptr<ProblemGenerationLogger> BuildLogger(
const std::filesystem::path& log_file_path,
160 std::ostream& stream,
161 const std::string& context);
Definition ProblemGenerationLogger.h:52
void display_message(const std::string &message) override
pure virtual method to display a std::string message
Definition ProblemGenerationLogger.cpp:20
Definition ProblemGenerationLogger.h:21
void display_message(const std::string &message) override=0
pure virtual method to display a std::string message
Definition ProblemGenerationLogger.h:91
void display_message(const std::string &message) override
pure virtual method to display a std::string message
Definition ProblemGenerationLogger.cpp:89
Definition ProblemGenerationLogger.h:74
void display_message(const std::string &message) override
pure virtual method to display a std::string message
Definition ProblemGenerationLogger.cpp:58
Xpansion Unique log Interface.
Definition ILogger.h:78