| 2440 | } |
| 2441 | |
| 2442 | void Writer::initializeLogger(const std::string& loggerId, bool lookup, bool needLock) { |
| 2443 | if (lookup) { |
| 2444 | m_logger = ELPP->registeredLoggers()->get(loggerId, ELPP->hasFlag(LoggingFlag::CreateLoggerAutomatically)); |
| 2445 | } |
| 2446 | if (m_logger == nullptr) { |
| 2447 | ELPP->acquireLock(); |
| 2448 | if (!ELPP->registeredLoggers()->has(std::string(base::consts::kDefaultLoggerId))) { |
| 2449 | // Somehow default logger has been unregistered. Not good! Register again |
| 2450 | ELPP->registeredLoggers()->get(std::string(base::consts::kDefaultLoggerId)); |
| 2451 | } |
| 2452 | ELPP->releaseLock(); // Need to unlock it for next writer |
| 2453 | Writer(Level::Debug, m_file, m_line, m_func).construct(1, base::consts::kDefaultLoggerId) |
| 2454 | << "Logger [" << loggerId << "] is not registered yet!"; |
| 2455 | m_proceed = false; |
| 2456 | } else { |
| 2457 | if (needLock) { |
| 2458 | m_logger->acquireLock(); // This should not be unlocked by checking m_proceed because |
| 2459 | // m_proceed can be changed by lines below |
| 2460 | } |
| 2461 | if (ELPP->hasFlag(LoggingFlag::HierarchicalLogging)) { |
| 2462 | m_proceed = m_level == Level::Verbose ? m_logger->enabled(m_level) : |
| 2463 | LevelHelper::castToInt(m_level) >= LevelHelper::castToInt(ELPP->m_loggingLevel); |
| 2464 | } else { |
| 2465 | m_proceed = m_logger->enabled(m_level); |
| 2466 | } |
| 2467 | } |
| 2468 | } |
| 2469 | |
| 2470 | void Writer::processDispatch() { |
| 2471 | #if ELPP_LOGGING_ENABLED |
nothing calls this directly
no test coverage detected