@@ -746,15 +746,17 @@ bool WsjcppCore::recoursiveRemoveDir(const std::string& sDir) {
746
746
// ---------------------------------------------------------------------
747
747
// WsjcppLog
748
748
749
- // Last log messages
750
- std::deque<std::string> * WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES = nullptr ;
751
749
std::mutex * WsjcppLog::g_WSJCPP_LOG_MUTEX = nullptr ;
752
750
std::string WsjcppLog::g_WSJCPP_LOG_DIR = " ./" ;
753
751
std::string WsjcppLog::g_WSJCPP_LOG_FILE = " " ;
754
752
std::string WsjcppLog::g_WSJCPP_LOG_PREFIX_FILE = " " ;
753
+ bool WsjcppLog::g_WSJCPP_ENABLE_LOG_FILE = true ;
755
754
long WsjcppLog::g_WSJCPP_LOG_START_TIME = 0 ;
756
755
long WsjcppLog::g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS = 51000 ;
757
756
757
+ // Last log messages
758
+ std::deque<std::string> * WsjcppLog::g_WSJCPP_LOG_LAST_MESSAGES = nullptr ;
759
+
758
760
// ---------------------------------------------------------------------
759
761
760
762
void WsjcppLog::doLogRotateUpdateFilename (bool bForce) {
@@ -820,6 +822,11 @@ std::vector<std::string> WsjcppLog::getLastLogMessages() {
820
822
821
823
void WsjcppLog::setLogDirectory (const std::string &sDirectoryPath ) {
822
824
WsjcppLog::g_WSJCPP_LOG_DIR = sDirectoryPath ;
825
+ if (!WsjcppCore::dirExists (WsjcppLog::g_WSJCPP_LOG_DIR)) {
826
+ if (!WsjcppCore::makeDir (WsjcppLog::g_WSJCPP_LOG_DIR)) {
827
+ WsjcppLog::err (" setLogDirectory" , " Could not create log directory '" + sDirectoryPath + " '" );
828
+ }
829
+ }
823
830
WsjcppLog::doLogRotateUpdateFilename (true );
824
831
}
825
832
@@ -832,9 +839,14 @@ void WsjcppLog::setPrefixLogFile(const std::string &sPrefixLogFile) {
832
839
833
840
// ---------------------------------------------------------------------
834
841
842
+ void WsjcppLog::setEnableLogFile (bool bEnable) {
843
+ WsjcppLog::g_WSJCPP_ENABLE_LOG_FILE = bEnable;
844
+ }
845
+
846
+ // ---------------------------------------------------------------------
847
+
835
848
void WsjcppLog::setRotationPeriodInSec (long nRotationPeriodInSec) {
836
849
WsjcppLog::g_WSJCPP_LOG_ROTATION_PERIOD_IN_SECONDS = nRotationPeriodInSec;
837
-
838
850
}
839
851
840
852
// ---------------------------------------------------------------------
@@ -876,15 +888,18 @@ void WsjcppLog::add(WsjcppColorModifier &clr, const std::string &sType, const st
876
888
while (g_WSJCPP_LOG_LAST_MESSAGES->size () > 50 ) {
877
889
g_WSJCPP_LOG_LAST_MESSAGES->pop_back ();
878
890
}
879
- // TODO try create global variable
880
- std::ofstream logFile (WsjcppLog::g_WSJCPP_LOG_FILE, std::ios::app);
881
- if (!logFile) {
882
- std::cout << " Error Opening File" << std::endl;
883
- return ;
884
- }
885
891
886
- logFile << sLogMessage << std::endl;
887
- logFile.close ();
892
+ // log file
893
+ if (WsjcppLog::g_WSJCPP_ENABLE_LOG_FILE) {
894
+ std::ofstream logFile (WsjcppLog::g_WSJCPP_LOG_FILE, std::ios::app);
895
+ if (!logFile) {
896
+ std::cout << " Error Opening File" << std::endl;
897
+ return ;
898
+ }
899
+
900
+ logFile << sLogMessage << std::endl;
901
+ logFile.close ();
902
+ }
888
903
}
889
904
890
905
0 commit comments