@@ -760,37 +760,29 @@ bool WsjcppCore::recoursiveRemoveDir(const std::string& sDir) {
760
760
761
761
WsjcppLogGlobalConf::WsjcppLogGlobalConf () {
762
762
//
763
+ logDir = " ./" ;
764
+ logPrefixFile = " " ;
765
+ logFile = " " ;
766
+ enableLogFile = true ;
767
+ logStartTime = 0 ;
768
+ logRotationPeriodInSeconds = 51000 ;
763
769
}
764
770
765
- WsjcppLogGlobalConf::~WsjcppLogGlobalConf () {
766
- //
767
- }
768
-
769
- WsjcppLogGlobalConf WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF;
770
- // std::mutex * WsjcppLog::g_WSJCPP_LOG_MUTEX = nullptr;
771
- std::string WsjcppLog::g_WSJCPP_LOG_DIR = " ./" ;
772
- std::string WsjcppLog::g_WSJCPP_LOG_FILE = " " ;
773
- std::string WsjcppLog::g_WSJCPP_LOG_PREFIX_FILE = " " ;
774
- bool WsjcppLog::g_WSJCPP_ENABLE_LOG_FILE = true ;
775
- long WsjcppLog::g_WSJCPP_LOG_START_TIME = 0 ;
776
- long WsjcppLog::g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS = 51000 ;
777
-
778
- // Last log messages
779
- std::deque<std::string> * WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES = nullptr ;
780
-
781
771
// ---------------------------------------------------------------------
782
772
783
- void WsjcppLog ::doLogRotateUpdateFilename (bool bForce) {
773
+ void WsjcppLogGlobalConf ::doLogRotateUpdateFilename (bool bForce) {
784
774
long t = WsjcppCore::currentTime_seconds ();
785
- long nEverySeconds = WsjcppLog::g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS ; // rotate log if started now or if time left more then 1 day
786
- if (g_WSJCPP_LOG_START_TIME == 0 || t - g_WSJCPP_LOG_START_TIME > nEverySeconds || bForce) {
787
- g_WSJCPP_LOG_START_TIME = t;
788
- g_WSJCPP_LOG_FILE = g_WSJCPP_LOG_DIR + " /"
789
- + WsjcppLog::g_WSJCPP_LOG_PREFIX_FILE + " _"
790
- + WsjcppCore::formatTimeForFilename (g_WSJCPP_LOG_START_TIME ) + " .log" ;
775
+ long nEverySeconds = logRotationPeriodInSeconds ; // rotate log if started now or if time left more then 1 day
776
+ if (logStartTime == 0 || t - logStartTime > nEverySeconds || bForce) {
777
+ logStartTime = t;
778
+ logFile = logDir + " /"
779
+ + logPrefixFile + " _"
780
+ + WsjcppCore::formatTimeForFilename (logStartTime ) + " .log" ;
791
781
}
792
782
}
793
783
784
+ WsjcppLogGlobalConf WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF;
785
+
794
786
// ---------------------------------------------------------------------
795
787
796
788
void WsjcppLog::info (const std::string & sTag , const std::string &sMessage ) {
@@ -830,67 +822,49 @@ void WsjcppLog::ok(const std::string &sTag, const std::string &sMessage) {
830
822
// ---------------------------------------------------------------------
831
823
832
824
std::vector<std::string> WsjcppLog::getLastLogMessages () {
833
- WsjcppLog::initGlobalVariables ();
834
825
std::lock_guard<std::mutex> lock (WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logMutex );
835
826
std::vector<std::string> vRet;
836
- for (int i = 0 ; i < g_WSJCPP_LOG_LAST_MESSAGES-> size (); i++) {
837
- vRet.push_back (g_WSJCPP_LOG_LAST_MESSAGES-> at (i) );
827
+ for (int i = 0 ; i < WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. logLastMessages . size (); i++) {
828
+ vRet.push_back (WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. logLastMessages [i] );
838
829
}
839
830
return vRet;
840
831
}
841
832
842
833
// ---------------------------------------------------------------------
843
834
844
835
void WsjcppLog::setLogDirectory (const std::string &sDirectoryPath ) {
845
- WsjcppLog::g_WSJCPP_LOG_DIR = sDirectoryPath ;
846
- if (!WsjcppCore::dirExists (WsjcppLog::g_WSJCPP_LOG_DIR )) {
847
- if (!WsjcppCore::makeDir (WsjcppLog::g_WSJCPP_LOG_DIR )) {
836
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. logDir = sDirectoryPath ;
837
+ if (!WsjcppCore::dirExists (sDirectoryPath )) {
838
+ if (!WsjcppCore::makeDir (sDirectoryPath )) {
848
839
WsjcppLog::err (" setLogDirectory" , " Could not create log directory '" + sDirectoryPath + " '" );
849
840
}
850
841
}
851
- WsjcppLog::doLogRotateUpdateFilename (true );
842
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. doLogRotateUpdateFilename (true );
852
843
}
853
844
854
845
// ---------------------------------------------------------------------
855
846
856
847
void WsjcppLog::setPrefixLogFile (const std::string &sPrefixLogFile ) {
857
- WsjcppLog::g_WSJCPP_LOG_PREFIX_FILE = sPrefixLogFile ;
858
- WsjcppLog::doLogRotateUpdateFilename (true );
848
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. logPrefixFile = sPrefixLogFile ;
849
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. doLogRotateUpdateFilename (true );
859
850
}
860
851
861
852
// ---------------------------------------------------------------------
862
853
863
854
void WsjcppLog::setEnableLogFile (bool bEnable) {
864
- WsjcppLog::g_WSJCPP_ENABLE_LOG_FILE = bEnable;
855
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. enableLogFile = bEnable;
865
856
}
866
857
867
858
// ---------------------------------------------------------------------
868
859
869
860
void WsjcppLog::setRotationPeriodInSec (long nRotationPeriodInSec) {
870
- WsjcppLog::g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS = nRotationPeriodInSec;
871
- }
872
-
873
- // ---------------------------------------------------------------------
874
-
875
- void WsjcppLog::initGlobalVariables () {
876
- // create deque if not created
877
- if (WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES == nullptr ) {
878
- WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES = new std::deque<std::string>();
879
- // std::cout << WsjcppCore::currentTime_logformat() + ", " + WsjcppCore::threadId() + " Init last messages deque\r\n";
880
- }
881
- }
882
-
883
- // ---------------------------------------------------------------------
884
-
885
- void WsjcppLog::deinitGlobalVariables () {
886
- delete WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES;
861
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logRotationPeriodInSeconds = nRotationPeriodInSec;
887
862
}
888
863
889
864
// ---------------------------------------------------------------------
890
865
891
866
void WsjcppLog::add (WsjcppColorModifier &clr, const std::string &sType , const std::string &sTag , const std::string &sMessage ) {
892
- WsjcppLog::initGlobalVariables ();
893
- WsjcppLog::doLogRotateUpdateFilename ();
867
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.doLogRotateUpdateFilename ();
894
868
895
869
std::lock_guard<std::mutex> lock (WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logMutex );
896
870
WsjcppColorModifier def (WsjcppColorCode::FG_DEFAULT);
@@ -899,14 +873,16 @@ void WsjcppLog::add(WsjcppColorModifier &clr, const std::string &sType, const st
899
873
+ " [" + sType + " ] " + sTag + " : " + sMessage ;
900
874
std::cout << clr << sLogMessage << def << std::endl;
901
875
902
- g_WSJCPP_LOG_LAST_MESSAGES->push_front (sLogMessage );
903
- while (g_WSJCPP_LOG_LAST_MESSAGES->size () > 50 ) {
904
- g_WSJCPP_LOG_LAST_MESSAGES->pop_back ();
876
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logLastMessages .push_front (sLogMessage );
877
+
878
+
879
+ while (WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logLastMessages .size () > 50 ) {
880
+ WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF.logLastMessages .pop_back ();
905
881
}
906
882
907
- // log file
908
- if (WsjcppLog::g_WSJCPP_ENABLE_LOG_FILE ) {
909
- std::ofstream logFile (WsjcppLog::g_WSJCPP_LOG_FILE , std::ios::app);
883
+ // log file
884
+ if (WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. enableLogFile ) {
885
+ std::ofstream logFile (WsjcppLog::g_WSJCPP_LOG_GLOBAL_CONF. logFile , std::ios::app);
910
886
if (!logFile) {
911
887
std::cout << " Error Opening File" << std::endl;
912
888
return ;
0 commit comments