#ifndef GN_PRECISE_PRECISE_LOG_H_
#define GN_PRECISE_PRECISE_LOG_H_
#include <string>
#include <vector>
#include <fstream>
#include <memory>
namespace precise {
class LogManager {
public:
LogManager();
~LogManager();
void Initialize(const std::string& logPath, const std::string& logLevel);
bool ShouldLog(const std::string& level) const;
void LogMessage(const std::string& level, const std::string& message);
void Close();
private:
std::string logPath_;
std::string currentLogLevel_;
std::unique_ptr<std::ofstream> logFile_;
void WriteToFile(const std::string& logEntry);
};
extern std::unique_ptr<LogManager> gLogManager;
void InitializeRealTimeLog(const std::string& logPath, const std::string& logLevel);
void LogMessage(const std::string& level, const std::string& message);
}
#endif