From 20b8c7523499b50b9fd3b0343445a2ceef2a22f6 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Wed, 13 Apr 2022 20:08:04 -0500 Subject: [PATCH] Initial setup for spdlog --- CMakeLists.txt | 1 + scwx-qt/source/scwx/qt/main/main.cpp | 5 ++++ wxdata/include/scwx/util/logger.hpp | 20 +++++++++++++++ wxdata/source/scwx/util/logger.cpp | 37 ++++++++++++++++++++++++++++ wxdata/wxdata.cmake | 4 +++ 5 files changed, 67 insertions(+) create mode 100644 wxdata/include/scwx/util/logger.hpp create mode 100644 wxdata/source/scwx/util/logger.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 41a23cdb..8717a376 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ conan_cmake_configure(REQUIRES boost/1.78.0 glm/0.9.9.8 gtest/cci.20210126 openssl/1.1.1n + spdlog/1.10.0 vulkan-loader/1.3.204.1 GENERATORS cmake cmake_find_package diff --git a/scwx-qt/source/scwx/qt/main/main.cpp b/scwx-qt/source/scwx/qt/main/main.cpp index 56b9ffe1..0bb745b8 100644 --- a/scwx-qt/source/scwx/qt/main/main.cpp +++ b/scwx-qt/source/scwx/qt/main/main.cpp @@ -2,9 +2,11 @@ #include #include #include +#include #include #include +#include #include int main(int argc, char* argv[]) @@ -12,6 +14,9 @@ int main(int argc, char* argv[]) boost::log::core::get()->set_filter(boost::log::trivial::severity >= boost::log::trivial::debug); + scwx::util::Logger::Initialize(); + spdlog::set_level(spdlog::level::debug); + QCoreApplication::setApplicationName("Supercell Wx"); scwx::qt::config::RadarSite::Initialize(); diff --git a/wxdata/include/scwx/util/logger.hpp b/wxdata/include/scwx/util/logger.hpp new file mode 100644 index 00000000..b9c4442e --- /dev/null +++ b/wxdata/include/scwx/util/logger.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include +#include + +#include + +namespace scwx +{ +namespace util +{ +namespace Logger +{ + +void Initialize(); +std::shared_ptr Create(const std::string& name); + +} // namespace Logger +} // namespace util +} // namespace scwx diff --git a/wxdata/source/scwx/util/logger.cpp b/wxdata/source/scwx/util/logger.cpp new file mode 100644 index 00000000..0642dfe0 --- /dev/null +++ b/wxdata/source/scwx/util/logger.cpp @@ -0,0 +1,37 @@ +#include + +#include + +#include +#include + +namespace scwx +{ +namespace util +{ +namespace Logger +{ + +void Initialize() +{ + spdlog::set_pattern("[%Y-%m-%d %T.%e] [%t] [%^%l%$] [%n] %v"); +} + +std::shared_ptr Create(const std::string& name) +{ + // Create a shared sink + static auto sink = std::make_shared(); + + // Create the logger + std::shared_ptr logger = + std::make_shared(name, sink); + + // Register the logger, so it can be retrieved later using spdlog::get() + spdlog::register_logger(logger); + + return logger; +} + +} // namespace Logger +} // namespace util +} // namespace scwx diff --git a/wxdata/wxdata.cmake b/wxdata/wxdata.cmake index e23ef30e..ec82c5b6 100644 --- a/wxdata/wxdata.cmake +++ b/wxdata/wxdata.cmake @@ -1,6 +1,7 @@ project(scwx-data) find_package(Boost) +find_package(spdlog) set(HDR_AWIPS include/scwx/awips/coded_location.hpp include/scwx/awips/coded_time_motion_location.hpp @@ -34,12 +35,14 @@ set(SRC_COMMON source/scwx/common/color_table.cpp source/scwx/common/vcp.cpp) set(HDR_UTIL include/scwx/util/float.hpp include/scwx/util/iterator.hpp + include/scwx/util/logger.hpp include/scwx/util/rangebuf.hpp include/scwx/util/streams.hpp include/scwx/util/threads.hpp include/scwx/util/time.hpp include/scwx/util/vectorbuf.hpp) set(SRC_UTIL source/scwx/util/float.cpp + source/scwx/util/logger.cpp source/scwx/util/rangebuf.cpp source/scwx/util/streams.cpp source/scwx/util/time.cpp @@ -191,6 +194,7 @@ if(MSVC) target_compile_options(wxdata PRIVATE /W3) endif() +target_link_libraries(wxdata PUBLIC spdlog::spdlog) target_link_libraries(wxdata INTERFACE Boost::iostreams Boost::log BZip2::BZip2