| 105 | } |
| 106 | |
| 107 | std::shared_ptr<spdlog::logger> openhd::log::create_or_get( |
| 108 | const std::string& logger_name) { |
| 109 | static std::mutex logger_mutex2{}; |
| 110 | std::lock_guard<std::mutex> guard(logger_mutex2); |
| 111 | auto ret = spdlog::get(logger_name); |
| 112 | if (ret == nullptr) { |
| 113 | auto created = spdlog::stdout_color_mt(logger_name); |
| 114 | assert(created); |
| 115 | if (OHDFilesystemUtil::exists("/usr/local/share/openhd/debug.txt")) { |
| 116 | created->set_level(spdlog::level::debug); |
| 117 | } else { |
| 118 | created->set_level(spdlog::level::warn); |
| 119 | } |
| 120 | // Add the sink that sends out warning or higher via UDP |
| 121 | // created->sinks().push_back(std::make_shared<openhd::log::sink::UdpTelemetrySink>()); |
| 122 | created->sinks().push_back( |
| 123 | std::make_shared<openhd::log::sink::MavlinkTelemetrySink>()); |
| 124 | // This is for debugging for "where a fmt exception occurred" |
| 125 | // spdlog::set_error_handler([](const std::string &msg) { |
| 126 | // std::cerr<<msg<<"\n;"; |
| 127 | //}); |
| 128 | return created; |
| 129 | } |
| 130 | return ret; |
| 131 | } |
| 132 | |
| 133 | std::shared_ptr<spdlog::logger> openhd::log::get_default() { |
| 134 | return create_or_get("default"); |