| 51 | } |
| 52 | |
| 53 | void AFCLogModule::CreateDevLogger() |
| 54 | { |
| 55 | std::vector<spdlog::sink_ptr> sinks_vec; |
| 56 | std::string log_name = |
| 57 | ARK_FORMAT("{}{}{}.{}.log", GetPluginManager()->GetLogPath(), spdlog::details::os::folder_sep, |
| 58 | GetPluginManager()->GetAppName(), AFMisc::Bus2Str(GetPluginManager()->GetBusID())); |
| 59 | auto date_and_hour_sink = std::make_shared<spdlog::sinks::date_and_hour_file_sink_mt>(log_name); |
| 60 | #ifdef ARK_RUN_MODE_DEBUG |
| 61 | #ifdef ARK_PLATFORM_WIN |
| 62 | auto color_sink = std::make_shared<spdlog::sinks::wincolor_stdout_sink_mt>(); |
| 63 | #else |
| 64 | auto color_sink = std::make_shared<spdlog::sinks::ansicolor_stdout_sink_mt>(); |
| 65 | #endif // ARK_PLATFORM_WIN |
| 66 | sinks_vec.push_back(color_sink); |
| 67 | #endif // ARK_RUN_MODE_DEBUG |
| 68 | sinks_vec.push_back(date_and_hour_sink); |
| 69 | |
| 70 | dev_tp_ = std::make_shared<spdlog::details::thread_pool>(spdlog::details::default_async_q_size, 1); |
| 71 | dev_logger_ = std::make_shared<spdlog::async_logger>( |
| 72 | GetPluginManager()->GetAppName(), std::begin(sinks_vec), std::end(sinks_vec), dev_tp_); |
| 73 | |
| 74 | #ifdef ARK_RUN_MODE_DEBUG |
| 75 | dev_logger_->set_level(spdlog::level::level_enum::trace); |
| 76 | dev_logger_->set_pattern("%^[%Y%m%d %H:%M:%S.%e][%-8l][%@]%v%$"); |
| 77 | #else |
| 78 | dev_logger_->set_pattern("[%Y%m%d %H:%M:%S.%e][%-8l][%@]%v"); |
| 79 | #endif // ARK_RUN_MODE_DEBUG |
| 80 | // flush when level >= trace |
| 81 | dev_logger_->flush_on(spdlog::level::trace); |
| 82 | |
| 83 | spdlog::register_logger(dev_logger_); |
| 84 | } |
| 85 | |
| 86 | ////////////////////////////////////////////////////////////////////////// |
| 87 | |