#pragma once #include "nlohmann/json.hpp" #include "GeneralUtils.h" namespace mitech::utils::logging { constexpr auto MAX_FILESIZE_MB = 1; constexpr auto MAX_RUNNING_NUMBER = 99; using stLogOption = struct _stLogOption { bool enable{ false }; // daily 1:30am bool daily_log{ false }; int daily_hour{ 1 }; int daily_minute{ 30 }; // rotating 1MB 99 files int filesize_mb{ MAX_FILESIZE_MB }; int rotating_files{ MAX_RUNNING_NUMBER }; // bool debug_console{ false }; int flush_level{ 6 }; // default : 6=off // std::string path_file{}; }; using stLogGlobal = struct _stLogGlobal { int flush_interval_s{ 3 }; int flush_level{ 6 }; // 6=off }; } namespace mitech::utils::logging { using namespace nlohmann; using namespace nsUtils; void from_json(const json& j, stLogOption& x); void to_json(json& j, const stLogOption& x); void from_json(const json& j, stLogGlobal& x); void to_json(json& j, const stLogGlobal& x); inline void from_json(const json& j, stLogOption& x) { getValue(j, "enable", x.enable); getValue(j, "daily_log", x.daily_log); getValue(j, "daily_hour", x.daily_hour); getValue(j, "daily_minute", x.daily_minute); } inline void to_json(json& j, const stLogOption& x) { j = nlohmann::json{ { "enable", x.enable}, { "daily_log", x.daily_log}, { "daily_hour", x.daily_hour}, { "daily_minute", x.daily_minute } }; } // inline void from_json(const json& j, stLogGlobal& x) { getValue(j, "flush_interval_s", x.flush_interval_s); getValue(j, "flush_level", x.flush_level); } inline void to_json(json& j, const stLogGlobal& x) { j = nlohmann::json{ { "flush_interval_s", x.flush_interval_s }, { "flush_level", x.flush_level } }; } }