Qore Logger Module Reference 0.5
Loading...
Searching...
No Matches
Logger::Logger Class Reference

Implements main logger class whose instance will be used by user code when logging. More...

#include <Logger.qm.dox.h>

Inheritance diagram for Logger::Logger:
[legend]

Public Member Methods

 addAppender (LoggerAppender appender)
 Adds an appender to the appender list. More...
 
 assertLog (bool assertion, string message,...)
 Performs logging of assertions. More...
 
 callAppenders (LoggerEvent event)
 Forwards the given logging event to all linked appenders. More...
 
 constructor (LoggerLevel level)
 Creates the object with an empty name and the given initial level. More...
 
 constructor (string name, LoggerLevel level)
 Creates the object. More...
 
 constructor (string name='')
 Creates the object. More...
 
 debug (string message,...)
 Logs a message object with the DEBUG level. More...
 
 debugVar (string var_name, auto value)
 Logs the variable name and value using DEBUG level. More...
 
*LoggerLevel decLevel ()
 Decrement logger level. More...
 
 error (string message,...)
 Logs a message object with the ERROR level. More...
 
 fatal (string message,...)
 Logs a message object with the FATAL level. More...
 
bool getAdditivity ()
 Returns the additivity flag.
 
list< LoggerAppendergetAppenders ()
 Returns the appender list. More...
 
*LoggerLevel getLevel (bool effective=True)
 Returns the logging level. More...
 
string getName ()
 Returns the logger name.
 
*Logger getParent ()
 Returns the parent logger, if any.
 
*LoggerLevel incLevel ()
 Increment logger level. More...
 
 info (string message,...)
 Logs a message object with the INFO level. More...
 
bool isDebugEnabled ()
 Checks whether this Logger is enabled for the DEBUG Level.
 
bool isEnabledFor (int level)
 Checks whether this Logger is enabled for a given Level passed as parameter. More...
 
bool isEnabledFor (LoggerLevel level)
 Checks whether this Logger is enabled for a given Level passed as parameter. More...
 
bool isEnabledFor (string level)
 Checks whether this Logger is enabled for a given Level passed as parameter. More...
 
bool isErrorEnabled ()
 Checks whether this Logger is enabled for the ERROR Level.
 
bool isFatalEnabled ()
 Checks whether this Logger is enabled for the FATAL Level.
 
bool isInfoEnabled ()
 Checks whether this Logger is enabled for the INFO Level.
 
bool isTraceEnabled ()
 Checks whether this Logger is enabled for the TRACE Level.
 
bool isWarnEnabled ()
 Checks whether this Logger is enabled for the WARN Level.
 
 log (int level, string message)
 Logs a message using the provided logging level. More...
 
 log (LoggerLevel level, string message)
 Logs a message using the provided logging level. More...
 
 log (string level, string message)
 Logs a message using the provided logging level. More...
 
 logArgs (int level, string message, *softlist< auto > args)
 Logs a message using the provided logging level and a single argument for any format string arguments. More...
 
 logArgs (LoggerLevel level, string message, *softlist< auto > args)
 Logs a message using the provided logging level and a single argument for any format string arguments. More...
 
 logArgs (string level, string message, *softlist< auto > args)
 Logs a message using the provided logging level and a single argument for any format string arguments. More...
 
 logEvent (LoggerEvent event)
 Logs an already prepared logging event object. More...
 
 removeAllAppenders ()
 Clears the appender list by removing all appenders.
 
 removeAppender (LoggerAppender appender)
 Removes the appender from the list. More...
 
 setAdditivity (bool enable)
 Sets the additivity flag; when additivity is active, events are passed to parent loggers. More...
 
 setLevel (*LoggerLevel level)
 Sets the logging level. More...
 
 setLevel (int level)
 Sets the logging level. More...
 
 setLevel (string level)
 Sets the logging level. More...
 
 setParent (*Logger value)
 Sets the parent logger. More...
 
 trace (string message,...)
 Logs a message object with the TRACE level. More...
 
 traceVar (string var_name, auto value)
 Logs the variable name and value using TRACE level. More...
 
 warn (string message,...)
 Logs a message object with the WARN level. More...
 
abstract assertLog (bool assertion, string message,...)
 Performs logging of assertions. More...
 
abstract debug (string message,...)
 Logs a message object with the DEBUG level. More...
 
abstract debugVar (string var_name, auto value)
 Logs the variable name and value using DEBUG level. More...
 
abstract error (string message,...)
 Logs a message object with the ERROR level. More...
 
abstract fatal (string message,...)
 Logs a message object with the FATAL level. More...
 
abstract info (string message,...)
 Logs a message object with the INFO level. More...
 
abstract bool isDebugEnabled ()
 Checks whether this Logger is enabled for the DEBUG Level.
 
abstract bool isEnabledFor (int level)
 Checks whether this Logger is enabled for a given Level passed as parameter. More...
 
abstract bool isEnabledFor (LoggerLevel level)
 Checks whether this Logger is enabled for a given Level passed as parameter. More...
 
abstract bool isEnabledFor (string level)
 Checks whether this Logger is enabled for a given Level passed as parameter. More...
 
abstract bool isErrorEnabled ()
 Checks whether this Logger is enabled for the ERROR Level.
 
abstract bool isFatalEnabled ()
 Checks whether this Logger is enabled for the FATAL Level.
 
abstract bool isInfoEnabled ()
 Checks whether this Logger is enabled for the INFO Level.
 
abstract bool isTraceEnabled ()
 Checks whether this Logger is enabled for the TRACE Level.
 
abstract bool isWarnEnabled ()
 Checks whether this Logger is enabled for the WARN Level.
 
abstract log (int level, string message)
 Logs a message using the provided logging level. More...
 
abstract log (LoggerLevel level, string message)
 Logs a message using the provided logging level. More...
 
abstract log (string level, string message)
 Logs a message using the provided logging level. More...
 
abstract logArgs (int level, string message, *softlist< auto > args)
 Logs a message using the provided logging level and a single argument for any format string arguments. More...
 
abstract logArgs (LoggerLevel level, string message, *softlist< auto > args)
 Logs a message using the provided logging level and a single argument for any format string arguments. More...
 
abstract logArgs (string level, string message, *softlist< auto > args)
 Logs a message using the provided logging level and a single argument for any format string arguments. More...
 
abstract logEvent (LoggerEvent event)
 Logs an already prepared logging event object. More...
 
abstract trace (string message,...)
 Logs a message object with the TRACE level. More...
 
abstract traceVar (string var_name, auto value)
 Logs the variable name and value using TRACE level. More...
 
abstract warn (string message,...)
 Logs a message object with the WARN level. More...
 

Private Member Methods

hash< CallStackInfo > getLocation ()
 Returns the call location where the log function was called from.
 

Private:Internal Member Methods

transient RWLock lock ()
 The lock to protect object manipulation.
 

Static Private:Internal Member Methods

static RWLock hierarchyLock ()
 The lock to protect access to parent/child hierarchy.
 

Private:Internal Attributes

bool additivity = True
 Logger additivity. More...
 
transient list< LoggerAppenderappenders
 A collection of appenders linked to this logger.
 
*LoggerLevel currentLevel
 The assigned Logger level. If NOTHING, the parent level is used.
 
string name
 The name of this Logger instance.
 
*Logger parent
 The parent logger. Unassigned if this is the root logger.
 

Detailed Description

Implements main logger class whose instance will be used by user code when logging.

The Logger object is provided to user code. When a log is triggered, the message, arguments, current code position, and time are appended as a LoggerEvent event instance when the logging level is enabled. The event is passed to all registered appenders in the given Logger as well as in parents in the hierarchy when additivity is enabled.

Member Function Documentation

◆ addAppender()

Logger::Logger::addAppender ( LoggerAppender  appender)

Adds an appender to the appender list.

Parameters
appenderadd a new LoggerAppender
Exceptions
LOGGER-ERRORexception if appender is already in list

◆ assertLog()

Logger::Logger::assertLog ( bool  assertion,
string  message,
  ... 
)
virtual

Performs logging of assertions.

If the assertion parameter is False, then the message is logged using the ERROR level.

See also
log()
Parameters
assertionthe boolean assertion value
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ callAppenders()

Logger::Logger::callAppenders ( LoggerEvent  event)

Forwards the given logging event to all linked appenders.

Parameters
eventthe event to forward

◆ constructor() [1/3]

Logger::Logger::constructor ( LoggerLevel  level)

Creates the object with an empty name and the given initial level.

Parameters
levelthe initial level for the logger

◆ constructor() [2/3]

Logger::Logger::constructor ( string  name,
LoggerLevel  level 
)

Creates the object.

Parameters
namethe name of the object
levelthe initial level for the logger

◆ constructor() [3/3]

Logger::Logger::constructor ( string  name = '')

Creates the object.

Parameters
namethe name of the object

◆ debug()

Logger::Logger::debug ( string  message,
  ... 
)
virtual

Logs a message object with the DEBUG level.

See also
log()
Parameters
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ debugVar()

Logger::Logger::debugVar ( string  var_name,
auto  value 
)
virtual

Logs the variable name and value using DEBUG level.

See also
log()
Parameters
var_namethe variable name
valuethe value of the variable

Implements Logger::LoggerInterface.

◆ decLevel()

*LoggerLevel Logger::Logger::decLevel ( )

Decrement logger level.

Returns
current LoggerLevel

◆ error()

Logger::Logger::error ( string  message,
  ... 
)
virtual

Logs a message object with the ERROR level.

See also
log()
Parameters
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ fatal()

Logger::Logger::fatal ( string  message,
  ... 
)
virtual

Logs a message object with the FATAL level.

See also
log()
Parameters
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ getAppenders()

list< LoggerAppender > Logger::Logger::getAppenders ( )

Returns the appender list.

Note that the appender list may be manipulated in another thread as internal lock is released when list is returned

◆ getLevel()

*LoggerLevel Logger::Logger::getLevel ( bool  effective = True)

Returns the logging level.

Parameters
effectiveif False then get current level which can be NOTHING, if True then get level which might be inherited from parent, Default: True
Exceptions
LOGGER-ERRORif cannot get effective level from hierarchy

◆ incLevel()

*LoggerLevel Logger::Logger::incLevel ( )

Increment logger level.

Returns
current LoggerLevel

◆ info()

Logger::Logger::info ( string  message,
  ... 
)
virtual

Logs a message object with the INFO level.

See also
log()
Parameters
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ isEnabledFor() [1/3]

bool Logger::Logger::isEnabledFor ( int  level)
virtual

Checks whether this Logger is enabled for a given Level passed as parameter.

Parameters
levelthe log level to check

Implements Logger::LoggerInterface.

◆ isEnabledFor() [2/3]

bool Logger::Logger::isEnabledFor ( LoggerLevel  level)
virtual

Checks whether this Logger is enabled for a given Level passed as parameter.

Parameters
levelthe log level to check

Implements Logger::LoggerInterface.

◆ isEnabledFor() [3/3]

bool Logger::Logger::isEnabledFor ( string  level)
virtual

Checks whether this Logger is enabled for a given Level passed as parameter.

Parameters
levelthe log level to check

Implements Logger::LoggerInterface.

◆ log() [1/3]

Logger::Logger::log ( int  level,
string  message 
)
virtual

Logs a message using the provided logging level.

Parameters
levelthe logging level.
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ log() [2/3]

Logger::Logger::log ( LoggerLevel  level,
string  message 
)
virtual

Logs a message using the provided logging level.

Parameters
levelThe logging level.
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ log() [3/3]

Logger::Logger::log ( string  level,
string  message 
)
virtual

Logs a message using the provided logging level.

Parameters
levelThe logging level.
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ logArgs() [1/3]

Logger::Logger::logArgs ( int  level,
string  message,
*softlist< auto >  args 
)
virtual

Logs a message using the provided logging level and a single argument for any format string arguments.

Parameters
levelthe logging level.
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.
argsany format string arguments to the log message

Implements Logger::LoggerInterface.

◆ logArgs() [2/3]

Logger::Logger::logArgs ( LoggerLevel  level,
string  message,
*softlist< auto >  args 
)
virtual

Logs a message using the provided logging level and a single argument for any format string arguments.

Parameters
levelThe logging level.
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.
argsany format string arguments to the log message

Implements Logger::LoggerInterface.

◆ logArgs() [3/3]

Logger::Logger::logArgs ( string  level,
string  message,
*softlist< auto >  args 
)
virtual

Logs a message using the provided logging level and a single argument for any format string arguments.

Parameters
levelThe logging level.
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.
argsany format string arguments to the log message

Implements Logger::LoggerInterface.

◆ logEvent()

Logger::Logger::logEvent ( LoggerEvent  event)
virtual

Logs an already prepared logging event object.

Parameters
eventthe event to log

Implements Logger::LoggerInterface.

◆ removeAppender()

Logger::Logger::removeAppender ( LoggerAppender  appender)

Removes the appender from the list.

Parameters
appenderthe appender to remove

◆ setAdditivity()

Logger::Logger::setAdditivity ( bool  enable)

Sets the additivity flag; when additivity is active, events are passed to parent loggers.

Parameters
enablethe additivity flag; when additivity is active, events are passed to parent loggers

◆ setLevel() [1/3]

Logger::Logger::setLevel ( *LoggerLevel  level)

Sets the logging level.

Parameters
levelif nothing then inherits level from parent

◆ setLevel() [2/3]

Logger::Logger::setLevel ( int  level)

Sets the logging level.

Parameters
levelthe logging level to set

◆ setLevel() [3/3]

Logger::Logger::setLevel ( string  level)

Sets the logging level.

Parameters
levelthe logging level as a string

◆ setParent()

Logger::Logger::setParent ( *Logger  value)

Sets the parent logger.

Parameters
valuethe parent logger
Exceptions
LOGGER-ERRORin case of circular reference

◆ trace()

Logger::Logger::trace ( string  message,
  ... 
)
virtual

Logs a message object with the TRACE level.

See also
log()
Parameters
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

◆ traceVar()

Logger::Logger::traceVar ( string  var_name,
auto  value 
)
virtual

Logs the variable name and value using TRACE level.

See also
log()
Parameters
var_namethe variable name
valuethe value of the variable

Implements Logger::LoggerInterface.

◆ warn()

Logger::Logger::warn ( string  message,
  ... 
)
virtual

Logs a message object with the WARN level.

See also
log()
Parameters
messagea string to log used as a format string for vsprintf(). Optional arguments are passed to the LoggerEvent object. If the last parameter is an ExceptionInfo typed hash, then it is considered "throwable" information.

Implements Logger::LoggerInterface.

Member Data Documentation

◆ additivity

bool Logger::Logger::additivity = True
private:internal

Logger additivity.

If set to true then child loggers will inherit the appenders of their ancestors by default