SGProcessingManager/src/util/sgprocmgr-logger.cpp¶
Namespaces¶
| Name |
|---|
| sgns |
| sgns::sgprocmanager |
Functions¶
| Name | |
|---|---|
| Logger | createLogger(const std::string & tag, const std::string & basepath ="") |
Functions Documentation¶
function createLogger¶
Parameters:
- tag - tagging name for identifying logger
Return: logger object
Provide logger object
Source code¶
#include "util/sgprocmgr-logger.hpp"
#include <iostream>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>
namespace
{
void setGlobalPattern( spdlog::logger &logger )
{
logger.set_pattern( "[%Y-%m-%d %H:%M:%S][%l][%n] %v" );
}
void setDebugPattern( spdlog::logger &logger )
{
logger.set_pattern( "[%Y-%m-%d %H:%M:%S.%F][th:%t][%l][%n] %v" );
}
std::shared_ptr<spdlog::logger> createLogger( const std::string &tag, bool debug_mode = false, const std::string &basepath = "" )
{
std::shared_ptr<spdlog::logger> logger;
#if defined( ANDROID )
if (basepath.size() > 0)
{
logger = spdlog::basic_logger_mt(tag, basepath);
}
else {
logger = spdlog::android_logger_mt(tag);
}
#else
if (basepath.size() > 0)
{
logger = spdlog::basic_logger_mt(tag, basepath);
}
else {
logger = spdlog::stdout_color_mt(tag);
}
#endif
if ( debug_mode )
{
setDebugPattern( *logger );
}
else
{
setGlobalPattern( *logger );
}
return logger;
}
} // namespace
namespace sgns::sgprocmanager
{
Logger createLogger( const std::string &tag, const std::string& basepath )
{
static std::mutex mutex;
std::lock_guard<std::mutex> lock( mutex );
auto logger = spdlog::get( tag );
if ( logger == nullptr )
{
logger = ::createLogger( tag, false, basepath );
}
return logger;
}
} // namespace sgns::sgprocmanager
Updated on 2026-03-04 at 13:10:44 -0800