@@ -286,7 +286,10 @@ void Log::registerIndependentLogger(const boost::shared_ptr<IndependentLogger>&
286286 independentLoggers_[logger->name ()] = logger;
287287}
288288
289- const bool Log::hasLogger (const string& name) const { return loggers_.find (name) != loggers_.end (); }
289+ const bool Log::hasLogger (const string& name) const {
290+ boost::shared_lock<boost::shared_mutex> lock (mutex_);
291+ return loggers_.find (name) != loggers_.end ();
292+ }
290293
291294boost::shared_ptr<Logger>& Log::logger (const string& name) {
292295 boost::shared_lock<boost::shared_mutex> lock (mutex_);
@@ -295,6 +298,7 @@ boost::shared_ptr<Logger>& Log::logger(const string& name) {
295298}
296299
297300const bool Log::hasIndependentLogger (const string& name) const {
301+ boost::shared_lock<boost::shared_mutex> lock (mutex_);
298302 return independentLoggers_.find (name) != independentLoggers_.end ();
299303}
300304
@@ -333,6 +337,7 @@ void Log::removeAllLoggers() {
333337}
334338
335339string Log::source (const char * filename, int lineNo) {
340+ boost::shared_lock<boost::shared_mutex> lock (mutex_);
336341 string filepath;
337342 if (rootPath_.empty ()) {
338343 filepath = filename;
@@ -357,17 +362,21 @@ string Log::source(const char* filename, int lineNo) {
357362}
358363
359364void Log::addExcludeFilter (const string& key, const std::function<bool (const std::string&)> func) {
365+ boost::unique_lock<boost::shared_mutex> lock (mutex_);
360366 excludeFilters_[key] = func;
361367}
362368
363- void Log::removeExcludeFilter (const string& key) { excludeFilters_.erase (key); }
369+ void Log::removeExcludeFilter (const string& key) {
370+ boost::unique_lock<boost::shared_mutex> lock (mutex_);
371+ excludeFilters_.erase (key);
372+ }
364373
365374bool Log::checkExcludeFilters (const std::string& msg) {
375+ boost::shared_lock<boost::shared_mutex> lock (mutex_);
366376 for (const auto & f : excludeFilters_) {
367377 if (f.second (msg))
368378 return true ;
369379 }
370-
371380 return false ;
372381}
373382
0 commit comments