Fawkes API  Fawkes Development Version
fawkes::LoggerFactory Class Reference

Logger factory. More...

#include <>>

Static Public Member Functions

static Loggerinstance (const char *type, const char *as)
 Get logger instance. More...
 
static MultiLoggermultilogger_instance (const char *as, Logger::LogLevel default_ll=Logger::LL_DEBUG)
 Create MultiLogger instance. More...
 
template<class L >
static L * instance (const char *type, const char *as)
 Get typed instance of logger. More...
 

Detailed Description

Logger factory.

This logging factory provides access to all loggers in a unified way. You just supply a logger argument string and depending on the logger type an instance of the desired logger is returned or otherwise an exception is thrown. See instance() for a list of supported logger types.

Author
Tim Niemueller

Definition at line 44 of file factory.h.

Member Function Documentation

◆ instance() [1/2]

Logger * fawkes::LoggerFactory::instance ( const char *  type,
const char *  as 
)
static

Get logger instance.

Get an instance of a logger of the given type. The argument string is used for logger arguments. Supported logger types:

Definition at line 99 of file factory.cpp.

References fawkes::UnknownLoggerTypeException::UnknownLoggerTypeException().

Referenced by instance().

◆ instance() [2/2]

template<class L >
L * fawkes::LoggerFactory::instance ( const char *  type,
const char *  as 
)
static

Get typed instance of logger.

Creates a new instance and converts it to the requested type. If the type does not match the requested logger an exception is thrown.

Parameters
typelogger type
aslogger argument string
Returns
typed logger instance
Exceptions
TypeMismatchExceptionthrown, if requested logger does not match requested type.

Definition at line 70 of file factory.h.

References instance().

◆ multilogger_instance()

MultiLogger * fawkes::LoggerFactory::multilogger_instance ( const char *  as,
Logger::LogLevel  default_ll = Logger::LL_DEBUG 
)
static

Create MultiLogger instance.

This creates a multi logger instance based on the supplied argument string. The argument string is of the form

ltype:largs[;ltype2:largs2[;...]]

So it is a list of logger type/argument tuples separated by columns concatenated to one list with exclamation marks. The list is not pre-processed, so if you mention a logger twice this logger is added twice.

Parameters
aslogger argument string
default_lldefault log level for multi logger
Returns
multi logger instance with requested loggers
Exceptions
UnknownLoggerTypeExceptionthrown if any of the loggers was unknown.

Definition at line 143 of file factory.cpp.

References fawkes::MultiLogger::add_logger(), fawkes::Exception::append(), fawkes::MultiLogger::set_loglevel(), fawkes::Logger::set_loglevel(), and fawkes::UnknownLoggerTypeException::UnknownLoggerTypeException().


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