|
7 | 7 |
|
8 | 8 | void Logger::Logger::configure( |
9 | 9 | const spdlog::level::level_enum logLevelConsole, const spdlog::level::level_enum logLevelFile, const std::string& logFile, int fileSize, int filesCount, bool isColorLogEnabled) { |
10 | | - spdlog::drop_all(); |
11 | | - _logger.reset(); |
12 | | - |
13 | | - auto consoleLogger = std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); |
14 | | - consoleLogger->set_level(logLevelConsole); |
15 | | - |
16 | | - if (logLevelFile == spdlog::level::off || logFile.empty()) { |
17 | | - std::initializer_list<spdlog::sink_ptr> loggers{consoleLogger}; |
18 | | - Logger::_logger = std::make_shared<spdlog::logger>("auto_sdr", loggers); |
19 | | - } else { |
20 | | - auto fileLogger = std::make_shared<spdlog::sinks::rotating_file_sink_mt>(logFile, fileSize, filesCount); |
21 | | - fileLogger->set_level(logLevelFile); |
22 | | - |
23 | | - std::initializer_list<spdlog::sink_ptr> loggers{consoleLogger, fileLogger}; |
24 | | - Logger::_logger = std::make_shared<spdlog::logger>("auto_sdr", loggers); |
| 10 | + if (!_logger) { |
| 11 | + spdlog::drop_all(); |
| 12 | + _consoleLogger = std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); |
| 13 | + _fileLogger = std::make_shared<spdlog::sinks::rotating_file_sink_mt>(logFile, fileSize, filesCount); |
| 14 | + std::initializer_list<spdlog::sink_ptr> loggers{_consoleLogger, _fileLogger}; |
| 15 | + _logger = std::make_shared<spdlog::logger>("auto_sdr", loggers); |
| 16 | + spdlog::register_logger(_logger); |
25 | 17 | } |
26 | 18 |
|
| 19 | + _consoleLogger->set_level(logLevelConsole); |
| 20 | + _fileLogger->set_level(logLevelFile); |
27 | 21 | _logger->set_level(std::min(logLevelConsole, logLevelFile)); |
28 | 22 | _logger->set_pattern("[%Y-%m-%d %H:%M:%S.%f] [%-7l] %v"); |
29 | | - spdlog::register_logger(_logger); |
30 | 23 | spdlog::flush_every(std::chrono::seconds(10)); |
31 | 24 | _isColorLogEnabled = isColorLogEnabled; |
32 | 25 | } |
0 commit comments