SNode.C
Loading...
Searching...
No Matches
logger::Logger Class Reference

#include <Logger.h>

Collaboration diagram for logger::Logger:

Public Types

using TickResolver = std::function<std::string()>

Public Member Functions

 Logger ()=delete
 ~Logger ()=delete

Static Public Member Functions

static void init ()
static void setLogLevel (int level)
static void setVerboseLevel (int level)
static void logToFile (const std::string &logFile)
static void disableLogToFile ()
static void setQuiet (bool quiet=true)
static void setTickResolver (TickResolver resolver)
static void setDisableColor (bool disableColorLog=true)
static bool getDisableColor ()
static bool shouldLog (Level level)
static bool shouldVerbose (int verboseLevel)

Static Protected Attributes

static bool disableColorLog = false

Friends

std::ostream & Color::operator<< (std::ostream &os, const Color::Code &code)
std::string Color::operator+ (const std::string &string, const Color::Code &code)
std::string Color::operator+ (const Color::Code &code, const std::string &string)

Detailed Description

Definition at line 92 of file Logger.h.

Member Typedef Documentation

◆ TickResolver

using logger::Logger::TickResolver = std::function<std::string()>

Definition at line 94 of file Logger.h.

Constructor & Destructor Documentation

◆ Logger()

logger::Logger::Logger ( )
delete

◆ ~Logger()

logger::Logger::~Logger ( )
delete

Member Function Documentation

◆ disableLogToFile()

void logger::Logger::disableLogToFile ( )
static

Definition at line 231 of file Logger.cpp.

231 {
232 fileLogger.reset();
233 fileSink.reset();
234 }
std::shared_ptr< spdlog::sinks::rotating_file_sink_st > fileSink
Definition Logger.cpp:61
std::shared_ptr< spdlog::logger > fileLogger
Definition Logger.cpp:63

References anonymous_namespace{Logger.cpp}::fileLogger, and anonymous_namespace{Logger.cpp}::fileSink.

◆ getDisableColor()

bool logger::Logger::getDisableColor ( )
static

Definition at line 244 of file Logger.cpp.

244 {
245 return disableColorLog;
246 }
static bool disableColorLog
Definition Logger.h:113

References disableColorLog.

Referenced by utils::ConfigRoot::addRootOptions(), and anonymous_namespace{Logger.cpp}::colorizeLevel().

Here is the caller graph for this function:

◆ init()

void logger::Logger::init ( )
static

Definition at line 193 of file Logger.cpp.

193 {
194 startTime = Clock::now();
195 stdoutSink = std::make_shared<spdlog::sinks::stdout_color_sink_st>();
196 stdoutLogger = std::make_shared<spdlog::logger>("snodec-stdout", stdoutSink);
197 auto stdoutPattern = std::make_unique<spdlog::pattern_formatter>();
198 stdoutPattern->add_flag<TickFlagFormatter>('*').set_pattern("%Y-%m-%d %H:%M:%S %* %v");
199 stdoutLogger->set_formatter(std::move(stdoutPattern));
200
201 fileSink.reset();
202 fileLogger.reset();
203 quietMode = false;
204 disableColorLog = ::isatty(::fileno(stdout)) == 0;
207 }
Clock::time_point startTime
Definition Logger.cpp:71
std::shared_ptr< spdlog::logger > stdoutLogger
Definition Logger.cpp:62
std::shared_ptr< spdlog::sinks::stdout_color_sink_st > stdoutSink
Definition Logger.cpp:60

References anonymous_namespace{Logger.cpp}::configuredLogLevel, anonymous_namespace{Logger.cpp}::configuredVerboseLevel, anonymous_namespace{Logger.cpp}::fileLogger, anonymous_namespace{Logger.cpp}::fileSink, anonymous_namespace{Logger.cpp}::quietMode, anonymous_namespace{Logger.cpp}::startTime, and anonymous_namespace{Logger.cpp}::stdoutLogger.

Referenced by utils::ConfigRoot::ConfigRoot().

Here is the caller graph for this function:

◆ logToFile()

void logger::Logger::logToFile ( const std::string & logFile)
static

Definition at line 221 of file Logger.cpp.

221 {
222 constexpr std::size_t maxSize = 2 * 1024 * 1024; // 2 MiB
223 constexpr std::size_t maxFiles = 3; // keep log, log.1, log.2, log.3
224 fileSink = std::make_shared<spdlog::sinks::rotating_file_sink_st>(logFile, maxSize, maxFiles);
225 fileLogger = std::make_shared<spdlog::logger>("snodec-file", fileSink);
226 auto filePattern = std::make_unique<spdlog::pattern_formatter>();
227 filePattern->add_flag<TickFlagFormatter>('*').set_pattern("%Y-%m-%d %H:%M:%S %* %v");
228 fileLogger->set_formatter(std::move(filePattern));
229 }

References anonymous_namespace{Logger.cpp}::fileLogger.

Referenced by utils::ConfigRoot::bootstrap().

Here is the caller graph for this function:

◆ setDisableColor()

void logger::Logger::setDisableColor ( bool disableColorLog = true)
static

Definition at line 240 of file Logger.cpp.

240 {
241 disableColorLog = disableColor;
242 }

References disableColorLog.

Referenced by utils::ConfigRoot::addRootOptions().

Here is the caller graph for this function:

◆ setLogLevel()

void logger::Logger::setLogLevel ( int level)
static

Definition at line 213 of file Logger.cpp.

213 {
214 configuredLogLevel = level;
215 }

References anonymous_namespace{Logger.cpp}::configuredLogLevel.

Referenced by utils::ConfigRoot::parse1().

Here is the caller graph for this function:

◆ setQuiet()

void logger::Logger::setQuiet ( bool quiet = true)
static

Definition at line 236 of file Logger.cpp.

236 {
237 quietMode = quiet;
238 }

References anonymous_namespace{Logger.cpp}::quietMode.

Referenced by utils::ConfigRoot::bootstrap(), utils::ConfigRoot::parse1(), and utils::ConfigRoot::parse2().

Here is the caller graph for this function:

◆ setTickResolver()

void logger::Logger::setTickResolver ( TickResolver resolver)
static

Definition at line 209 of file Logger.cpp.

209 {
210 tickResolver = std::move(resolver);
211 }
logger::Logger::TickResolver tickResolver
Definition Logger.cpp:68

References anonymous_namespace{Logger.cpp}::tickResolver.

Referenced by core::EventLoop::init().

Here is the caller graph for this function:

◆ setVerboseLevel()

void logger::Logger::setVerboseLevel ( int level)
static

Definition at line 217 of file Logger.cpp.

217 {
218 configuredVerboseLevel = std::max(0, level);
219 }

References anonymous_namespace{Logger.cpp}::configuredVerboseLevel.

Referenced by utils::ConfigRoot::parse1().

Here is the caller graph for this function:

◆ shouldLog()

bool logger::Logger::shouldLog ( Level level)
static

Definition at line 248 of file Logger.cpp.

248 {
249 return shouldEmit(level);
250 }
bool shouldEmit(const logger::Level level)
Definition Logger.cpp:166

References anonymous_namespace{Logger.cpp}::shouldEmit().

Here is the call graph for this function:

◆ shouldVerbose()

bool logger::Logger::shouldVerbose ( int verboseLevel)
static

Definition at line 252 of file Logger.cpp.

252 {
253 return verboseLevel >= 0 && verboseLevel <= configuredVerboseLevel;
254 }

References anonymous_namespace{Logger.cpp}::configuredVerboseLevel.

◆ Color::operator+ [1/2]

std::string Color::operator+ ( const Color::Code & code,
const std::string & string )
friend

◆ Color::operator+ [2/2]

std::string Color::operator+ ( const std::string & string,
const Color::Code & code )
friend

◆ Color::operator<<

std::ostream & Color::operator<< ( std::ostream & os,
const Color::Code & code )
friend

Member Data Documentation

◆ disableColorLog

bool logger::Logger::disableColorLog = false
staticprotected

The documentation for this class was generated from the following files: