| 14 | } |
| 15 | |
| 16 | void LogManager::Initialize() SKR_NOEXCEPT |
| 17 | { |
| 18 | tscns_.init(); |
| 19 | datetime_.reset_date(); |
| 20 | logger_ = skr::make_unique<skr::log::Logger>(u8"Log"); |
| 21 | |
| 22 | // register default pattern |
| 23 | auto ret = RegisterPattern(LogConstants::kDefaultPatternId, |
| 24 | skr::make_unique<LogPattern>( |
| 25 | u8"[%(timestamp)][%(thread_name)(tid:%(thread_id))] %(logger_name).%(level_name): %(message)" |
| 26 | )); |
| 27 | SKR_ASSERT(ret && "Default log pattern register failed!"); |
| 28 | |
| 29 | // register default console pattern & sink |
| 30 | ret = RegisterPattern(LogConstants::kDefaultConsolePatternId, |
| 31 | skr::make_unique<LogPattern>( |
| 32 | u8"[%(timestamp)][%(thread_name)(tid:%(thread_id))] %(logger_name).%(level_name): %(message) " |
| 33 | u8"\n \x1b[90mIn %(function_name) At %(file_name):%(file_line)\x1b[0m" |
| 34 | )); |
| 35 | SKR_ASSERT(ret && "Default log console pattern register failed!"); |
| 36 | ret = RegisterSink(LogConstants::kDefaultConsoleSinkId, skr::make_unique<LogANSIOutputSink>()); |
| 37 | SKR_ASSERT(ret && "Default log console sink register failed!"); |
| 38 | |
| 39 | // register default file pattern & sink |
| 40 | ret = RegisterPattern(LogConstants::kDefaultFilePatternId, |
| 41 | skr::make_unique<LogPattern>( |
| 42 | u8"[%(timestamp)][%(thread_name)(tid:%(thread_id))] %(logger_name).%(level_name): %(message) " |
| 43 | u8"\n In %(function_name) At %(file_name):%(file_line)" |
| 44 | )); |
| 45 | SKR_ASSERT(ret && "Default log file pattern register failed!"); |
| 46 | ret = RegisterSink(LogConstants::kDefaultFileSinkId, skr::make_unique<LogFileSink>()); |
| 47 | SKR_ASSERT(ret && "Default log file sink register failed!"); |
| 48 | } |
| 49 | |
| 50 | LogManager* LogManager::Get() SKR_NOEXCEPT |
| 51 | { |
no test coverage detected