Main Page   Modules   Class Hierarchy   Data Structures   File List   Data Fields   Globals  

PVLogger Class Reference

#include <pvlogger.h>


Public Types

typedef int32 log_level_type
typedef int32 message_id_type
typedef int32 filter_status_type
typedef _OsclBasicAllocator alloc_type

Public Methods

void SetLogLevel (log_level_type level)
OSCL_IMPORT_REF void SetLogLevelAndPropagate (log_level_type level)
log_level_type GetLogLevel ()
void DisableAppenderInheritance ()
void AddAppender (OsclSharedPtr< PVLoggerAppender > &appender)
void RemoveAppender (OsclSharedPtr< PVLoggerAppender > &appender)
void AddFilter (OsclSharedPtr< PVLoggerFilter > &filter)
uint32 GetNumAppenders ()
OSCL_IMPORT_REF bool IsActive (log_level_type level)
OSCL_IMPORT_REF void LogMsgStringV (message_id_type msgID, const char *fmt, va_list arguments)
OSCL_IMPORT_REF void LogMsgBuffersV (message_id_type msgID, int32 numPairs, va_list arguments)
OSCL_IMPORT_REF void LogMsgString (message_id_type msgID, const char *fmt,...)
OSCL_IMPORT_REF void LogMsgBuffers (message_id_type msgID, int32 numPairs,...)
OSCL_IMPORT_REF PVLogger (const char *inputTag, log_level_type level, bool oAppenderInheritance)
virtual ~PVLogger ()

Static Public Methods

OSCL_IMPORT_REF void Init ()
OSCL_IMPORT_REF void Cleanup ()
OSCL_IMPORT_REF PVLogger * GetLoggerObject (const char *inputTag)

Protected Methods

void SetParent (PVLogger *parentLogger)
PVLogger * GetParent ()

Friends

class PVLoggerRegistry


Member Typedef Documentation

typedef _OsclBasicAllocator PVLogger::alloc_type
 

typedef int32 PVLogger::filter_status_type
 

typedef int32 PVLogger::log_level_type
 

typedef int32 PVLogger::message_id_type
 


Constructor & Destructor Documentation

OSCL_IMPORT_REF PVLogger::PVLogger const char *    inputTag,
log_level_type    level,
bool    oAppenderInheritance
 

Logger Constructor

Parameters:
tag  Logger tag, unique to a logging control point
level  Active Log level of the logger
oAppenderInheritance 
Returns:
NONE

virtual PVLogger::~PVLogger   [inline, virtual]
 


Member Function Documentation

void PVLogger::AddAppender OsclSharedPtr< PVLoggerAppender > &    appender [inline]
 

This method adds an appender to the logging control point. Each logger maintains a list of appenders. Any msg to a logger if deemed active is logged to all the appenders.

Parameters:
appender  pointer to the appender to add
Returns:
NONE
Exceptions:
leaves  if out of memory

void PVLogger::AddFilter OsclSharedPtr< PVLoggerFilter > &    filter [inline]
 

This method adds a message filter to the logging control point. Each logger maintains a list of filters. Any msg to a logger if deemed active is passed through the msg filters prior to logging.

Parameters:
msgFilter  pointer to the filter to add
Returns:
NONE
Exceptions:
leaves  if out of memory

OSCL_IMPORT_REF void PVLogger::Cleanup   [static]
 

Frees the PVLogger singleton used by the current thread. This must be called before thread exit. No messages can be logged after cleanup.

Returns:

void PVLogger::DisableAppenderInheritance   [inline]
 

This method disables appender inheritance for the logging control point

OSCL_IMPORT_REF PVLogger* PVLogger::GetLoggerObject const char *    inputTag [static]
 

This is a factory method to create a log control point, with a certain input tag. There is a central registry of all the loggers, with their corresponding tags, called PV Logger Registry. In case the logger with the specified tag exists in the global registry, it is returned, else a new one is created and a pointer to the same is returend.

Parameters:
inputTag  logger tag, viz. "x.y.z"
level  log level associated with the logging control point (All messages with log levels less than equal to the log level of the control point would be logged)
oAppenderInheritance 
Returns:
PVLogger* Pointer to the logging control point
Exceptions:
leaves  if out of memory

log_level_type PVLogger::GetLogLevel   [inline]
 

This method returns the log level of a control point. This could either have been set explicitly by the user (at the time of creation or later) or could have been inherited from one of its ancestors.

Returns:
log level associated with the logging control point

uint32 PVLogger::GetNumAppenders   [inline]
 

This method returns the number of appenders attached to the logging control point.

PVLogger* PVLogger::GetParent   [inline, protected]
 

OSCL_IMPORT_REF void PVLogger::Init   [static]
 

PVLogger needs to be initialized once per thread. This creates the PVLogger singleton that is used throughout the duration of the thread. Initialization must occur before the first message is logged.

Exceptions:
leaves  if out of memory

OSCL_IMPORT_REF bool PVLogger::IsActive log_level_type    level
 

This method determines if a msg passed to the logging control point is active or not. Only messages that are deemed active are logged. Messages are considered not active if any of the following criteria are met:

  • All logging is disabled at this logging control point
If all the log levels, leading upto the root log point are uninitialized
  • If the log level of the incoming message is LESS THAN that of the active log level of the logging control point.
Returns:
BOOL

OSCL_IMPORT_REF void PVLogger::LogMsgBuffers message_id_type    msgID,
int32    numPairs,
...   
 

This method logs opaque data buffers to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.

Parameters:
msgID  Message ID, that is unique to a message
numPairs  Number of (ptr_len, ptr) pairs
arguments  Variable list of arguments
Returns:
NONE

OSCL_IMPORT_REF void PVLogger::LogMsgBuffersV message_id_type    msgID,
int32    numPairs,
va_list    arguments
 

This method logs opaque data buffers to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.

Parameters:
msgID  Message ID, that is unique to a message
numPairs  Number of (ptr_len, ptr) pairs
arguments  Variable list of arguments
Returns:
NONE

OSCL_IMPORT_REF void PVLogger::LogMsgString message_id_type    msgID,
const char *    fmt,
...   
 

This method logs formatted text msg to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.

Parameters:
msgID  Message ID, that is unique to a message
fmt  format string, similar to one taken by printf
arguments  Variable list of arguments
Returns:
NONE

OSCL_IMPORT_REF void PVLogger::LogMsgStringV message_id_type    msgID,
const char *    fmt,
va_list    arguments
 

This method logs formatted text msg to all the appenders, after running thrrough the message filters. After logging the message to the appenders attached to the current control point, the message is passed up to the parent node, only if appender inheritance is enabled.

Parameters:
msgID  Message ID, that is unique to a message
fmt  format string, similar to one taken by printf
arguments  Variable list of arguments
Returns:
NONE

void PVLogger::RemoveAppender OsclSharedPtr< PVLoggerAppender > &    appender [inline]
 

This method removes an appender from the logging control point. Each logger maintains a list of appenders. Any msg to a logger if deemed active is logged to all the appenders.

Parameters:
appender  pointer to the appender to delete
Returns:
NONE

void PVLogger::SetLogLevel log_level_type    level [inline]
 

This method is used to set the log level of a control point.

Parameters:
level  log level associated with the logging control point
Returns:
NONE

OSCL_IMPORT_REF void PVLogger::SetLogLevelAndPropagate log_level_type    level
 

This method is used to set the log level of a control point, as well as to propagate the level to all the descendants of this control point.

Parameters:
level  log level associated with the logging control point
Returns:
NONE

void PVLogger::SetParent PVLogger *    parentLogger [inline, protected]
 


Friends And Related Function Documentation

friend class PVLoggerRegistry [friend]
 


The documentation for this class was generated from the following file:
OSCL API
Posting Version: OPENCORE_20090310