.. _program_listing_file_include_PDJE_LOG_SETTER.hpp: Program Listing for File PDJE_LOG_SETTER.hpp ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``include/PDJE_LOG_SETTER.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include #include #include inline void startlog() { #ifndef LOG_OFF std::filesystem::create_directories("logs"); auto fileSink = std::make_shared( "logs/pdjeLog.txt", true); auto consoleSink = std::make_shared(); std::vector sinks{ consoleSink, fileSink }; auto logger = std::make_shared( "global_logger", sinks.begin(), sinks.end()); #ifndef NDEBUG logger->set_level(spdlog::level::debug); #else logger->set_level(spdlog::level::err); #endif logger->flush_on(spdlog::level::err); logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] %v"); spdlog::set_default_logger(logger); #endif } #ifndef LOG_OFF #ifdef ENABLE_INFO_LOG #define infolog(...) SPDLOG_INFO(__VA_ARGS__) #else #define infolog(...) #endif #ifdef ENABLE_WARN_LOG #define warnlog(...) SPDLOG_WARN(__VA_ARGS__) #else #define warnlog(...) #endif #define critlog(...) SPDLOG_CRITICAL(__VA_ARGS__) #else #define infolog(...) #define warnlog(...) #define critlog(...) #endif