Skip to content

Commit b07ca5e

Browse files
committed
Prepare class WsjcppLogGlobalConf
1 parent 37410a3 commit b07ca5e

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

src/wsjcpp_core.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,16 @@ bool WsjcppCore::recoursiveRemoveDir(const std::string& sDir) {
758758
// ---------------------------------------------------------------------
759759
// WsjcppLog
760760

761-
std::mutex * WsjcppLog::g_WSJCPP_LOG_MUTEX = nullptr;
761+
WsjcppLogGlobalConf::WsjcppLogGlobalConf() {
762+
//
763+
}
764+
765+
WsjcppLogGlobalConf::~WsjcppLogGlobalConf() {
766+
//
767+
}
768+
769+
WsjcppLogGlobalConf WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF;
770+
// std::mutex * WsjcppLog::g_WSJCPP_LOG_MUTEX = nullptr;
762771
std::string WsjcppLog::g_WSJCPP_LOG_DIR = "./";
763772
std::string WsjcppLog::g_WSJCPP_LOG_FILE = "";
764773
std::string WsjcppLog::g_WSJCPP_LOG_PREFIX_FILE = "";
@@ -822,7 +831,7 @@ void WsjcppLog::ok(const std::string &sTag, const std::string &sMessage) {
822831

823832
std::vector<std::string> WsjcppLog::getLastLogMessages() {
824833
WsjcppLog::initGlobalVariables();
825-
std::lock_guard<std::mutex> lock(*WsjcppLog::g_WSJCPP_LOG_MUTEX);
834+
std::lock_guard<std::mutex> lock(WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logMutex);
826835
std::vector<std::string> vRet;
827836
for (int i = 0; i < g_WSJCPP_LOG_LAST_MESSAGES->size(); i++) {
828837
vRet.push_back(g_WSJCPP_LOG_LAST_MESSAGES->at(i));
@@ -869,18 +878,12 @@ void WsjcppLog::initGlobalVariables() {
869878
WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES = new std::deque<std::string>();
870879
// std::cout << WsjcppCore::currentTime_logformat() + ", " + WsjcppCore::threadId() + " Init last messages deque\r\n";
871880
}
872-
// create mutex if not created
873-
if (WsjcppLog::g_WSJCPP_LOG_MUTEX == nullptr) {
874-
WsjcppLog::g_WSJCPP_LOG_MUTEX = new std::mutex();
875-
// std::cout << WsjcppCore::currentTime_logformat() + ", " + WsjcppCore::threadId() + " Init mutex for log\r\n";
876-
}
877881
}
878882

879883
// ---------------------------------------------------------------------
880884

881885
void WsjcppLog::deinitGlobalVariables() {
882886
delete WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES;
883-
delete WsjcppLog::g_WSJCPP_LOG_MUTEX;
884887
}
885888

886889
// ---------------------------------------------------------------------
@@ -889,7 +892,7 @@ void WsjcppLog::add(WsjcppColorModifier &clr, const std::string &sType, const st
889892
WsjcppLog::initGlobalVariables();
890893
WsjcppLog::doLogRotateUpdateFilename();
891894

892-
std::lock_guard<std::mutex> lock(*WsjcppLog::g_WSJCPP_LOG_MUTEX);
895+
std::lock_guard<std::mutex> lock(WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logMutex);
893896
WsjcppColorModifier def(WsjcppColorCode::FG_DEFAULT);
894897

895898
std::string sLogMessage = WsjcppCore::currentTime_logformat() + ", " + WsjcppCore::threadId()

src/wsjcpp_core.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,30 @@ class WsjcppColorModifier {
102102

103103
// ---------------------------------------------------------------------
104104

105+
class WsjcppLogGlobalConf {
106+
public:
107+
WsjcppLogGlobalConf();
108+
~WsjcppLogGlobalConf();
109+
std::string g_WSJCPP_LOG_DIR;
110+
std::string g_WSJCPP_LOG_PREFIX_FILE;
111+
std::string g_WSJCPP_LOG_FILE;
112+
bool g_WSJCPP_ENABLE_LOG_FILE;
113+
long g_WSJCPP_LOG_START_TIME;
114+
long g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS;
115+
std::mutex logMutex;
116+
std::deque<std::string> * g_WSJCPP_LOG_LAST_MESSAGES;
117+
void doLogRotateUpdateFilename(bool bForce = false);
118+
};
119+
105120
class WsjcppLog {
106121
public:
122+
static WsjcppLogGlobalConf g_WSJCPP_LOG_GLOBAL_CONF;
107123
static std::string g_WSJCPP_LOG_DIR;
108124
static std::string g_WSJCPP_LOG_PREFIX_FILE;
109125
static std::string g_WSJCPP_LOG_FILE;
110126
static bool g_WSJCPP_ENABLE_LOG_FILE;
111127
static long g_WSJCPP_LOG_START_TIME;
112128
static long g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS;
113-
static std::mutex * g_WSJCPP_LOG_MUTEX;
114129
static std::deque<std::string> * g_WSJCPP_LOG_LAST_MESSAGES;
115130
static void doLogRotateUpdateFilename(bool bForce = false);
116131

0 commit comments

Comments
 (0)