AppLog Class Reference

Application logger is a class that implements a logger that can be used by applications to save log file somewhere on the system. More...

#include <applog.h>

Inherits std::streambuf, and std::ostream.

Data Structures

class  Ident
 Ident class that represents module name. More...

Public Member Functions

AppLogalert (void)
 alert level
void alert (const char *format,...)
 alert level printf style method, provided for convenience.
 AppLog (const char *logFileName=NULL, bool logDirectly=false, bool usePipe=false)
 Constructor for a customized logger.
void clogEnable (bool en=true)
 Enables clog output.
void close (void)
 if logDirectly is set it closes the file.
AppLogcritical (void)
 critical level
void critical (const char *format,...)
 critical level printf style method, provided for convenience.
AppLogdebug (void)
 debug level
void debug (const char *format,...)
 debug level printf style method, provided for convenience.
AppLogemerg (void)
 emerg level
void emerg (const char *format,...)
 emerg level printf style method, provided for convenience.
AppLogerror (void)
 error level
void error (const char *format,...)
 error level printf style method, provided for convenience.
void identLevel (const char *ident, Slog::Level level)
 Sets the level for that ident.
AppLoginfo (void)
 info level
void info (const char *format,...)
 info level printf style method, provided for convenience.
void level (Slog::Level enable)
 Sets the log level.
void logFileName (const char *FileName, bool logDirectly=false, bool usePipe=false)
 Allows to set up ost::alog parameters.
AppLognotice (void)
 notice level
void notice (const char *format,...)
 notice level printf style method, provided for convenience.
void open (const char *ident)
 Opens the file if not already and sets ident.
AppLogoperator() (Slog::Level level)
 operator to change logging level
AppLogoperator() (Ident &ident)
 operator to change ident
AppLogoperator() (const char *ident, Slog::Level level=Slog::levelError)
 operator to change ident and log level
AppLogoperator<< (Ident &ident)
 operator <<
AppLogoperator<< (ostream &(*pfManipulator)(ostream &))
 manipulator operator, to use ostream manipulators (i.e.
AppLogoperator<< (AppLog &(*pfManipulator)(AppLog &))
 manipulator operator, to change print levels.
virtual int overflow (int c)
 stream overflow() overload.
void slogEnable (bool en=true)
 Enables slog output for error level messages.
void subscribe ()
 Subscribes the current thread to logger, it reserves thread safe buffer for it.
virtual int sync ()
 stream sync() overload
void unsubscribe ()
 Unsubscribes the current thread from logger.
AppLogwarn (void)
 warn level
void warn (const char *format,...)
 warn level printf style method, provided for convenience.
virtual ~AppLog ()
 Destructor.

Static Public Member Functions

static Slog::Level levelTranslate (string name)
 Translates level from string to Slog::Level, useful for configuration files for instance.

Protected Member Functions

void writeLog (bool endOfLine=true)

Protected Attributes

AppLogPrivate * d

Static Protected Attributes

static std::map< string,
Slog::Level > * 
assoc

Friends

ostream & operator<< (ostream &os, AppLog &al)

Detailed Description

Application logger is a class that implements a logger that can be used by applications to save log file somewhere on the system.

It uses ost::slog to write to syslog and std::clog to write to standard output.

It provides either a stream oriented logger or a old printf style one.

It can be used to log directly on a file or in a spooler like way. Latter uses a ost::ThreadQueue to implement a thread safe access to logger.

It provides a global stream variable called ost::alog.

It provides an AppLog::Ident class that represents a module name for instance that can be used to tag logs. Logging levels are the same defined into ost::Slog: Slog::levelEmergency Slog::levelAlert Slog::levelCritical Slog::levelError Slog::levelWarning Slog::levelNotice Slog::levelInfo Slog::levelDebugfrom.

Example of usage: alog << mod_name << debug << "Hello world!" << std::endl;

Definition at line 170 of file applog.h.


Constructor & Destructor Documentation

AppLog::AppLog ( const char *  logFileName = NULL,
bool  logDirectly = false,
bool  usePipe = false 
)

Constructor for a customized logger.

Parameters:
logFileName log file name.
logDirectly true to write directly to file, false to use a spooler like logger.
usePipe true to use pipe instead of file, false otherwise

Member Function Documentation

AppLog& AppLog::alert ( void   )  [inline]

alert level

Returns:
application logger stream

Definition at line 466 of file applog.h.

void AppLog::alert ( const char *  format,
  ... 
)

alert level printf style method, provided for convenience.

Parameters:
format printf format
void AppLog::clogEnable ( bool  en = true  ) 

Enables clog output.

Parameters:
en true to enable clog output.
AppLog& AppLog::critical ( void   )  [inline]

critical level

Returns:
application logger stream

Definition at line 473 of file applog.h.

void AppLog::critical ( const char *  format,
  ... 
)

critical level printf style method, provided for convenience.

Parameters:
format printf format
AppLog& AppLog::debug ( void   )  [inline]

debug level

Returns:
application logger stream

Definition at line 452 of file applog.h.

void AppLog::debug ( const char *  format,
  ... 
)

debug level printf style method, provided for convenience.

Parameters:
format printf format
AppLog& AppLog::emerg ( void   )  [inline]

emerg level

Returns:
application logger stream

Definition at line 459 of file applog.h.

void AppLog::emerg ( const char *  format,
  ... 
)

emerg level printf style method, provided for convenience.

Parameters:
format printf format
AppLog& AppLog::error ( void   )  [inline]

error level

Returns:
application logger stream

Definition at line 445 of file applog.h.

void AppLog::error ( const char *  format,
  ... 
)

error level printf style method, provided for convenience.

Parameters:
format printf format
void AppLog::identLevel ( const char *  ident,
Slog::Level  level 
)

Sets the level for that ident.

Parameters:
ident ident (module name for instance).
level level
AppLog& AppLog::info ( void   )  [inline]

info level

Returns:
application logger stream

Definition at line 487 of file applog.h.

void AppLog::info ( const char *  format,
  ... 
)

info level printf style method, provided for convenience.

Parameters:
format printf format
void AppLog::level ( Slog::Level  enable  ) 

Sets the log level.

Parameters:
enable log level.
static Slog::Level AppLog::levelTranslate ( string  name  )  [inline, static]

Translates level from string to Slog::Level, useful for configuration files for instance.

Valid level names are: "emerg" for Slog::levelEmergency "alert" for Slog::levelAlert "critical" for Slog::levelCritical "error" for Slog::levelError "warn" for Slog::levelWarning "notice" for Slog::levelNotice "info" for Slog::levelInfo "debug" for Slog::levelDebug

Parameters:
name Slog Level name
Returns:
Slog level value

Definition at line 505 of file applog.h.

void AppLog::logFileName ( const char *  FileName,
bool  logDirectly = false,
bool  usePipe = false 
)

Allows to set up ost::alog parameters.

Parameters:
FileName log file name.
logDirectly true to write directly to file, false to use a spooler like logger.
usePipe true to use pipe instead of file, false otherwise
AppLog& AppLog::notice ( void   )  [inline]

notice level

Returns:
application logger stream

Definition at line 480 of file applog.h.

void AppLog::notice ( const char *  format,
  ... 
)

notice level printf style method, provided for convenience.

Parameters:
format printf format
void AppLog::open ( const char *  ident  ) 

Opens the file if not already and sets ident.

Parameters:
ident module name for instance.
AppLog& AppLog::operator() ( Slog::Level  level  ) 

operator to change logging level

Parameters:
level new log level
Returns:
application logger stream
AppLog& AppLog::operator() ( Ident ident  )  [inline]

operator to change ident

Parameters:
ident ident (module name for instance)
Returns:
application logger stream

Definition at line 390 of file applog.h.

Here is the call graph for this function:

AppLog& AppLog::operator() ( const char *  ident,
Slog::Level  level = Slog::levelError 
)

operator to change ident and log level

Parameters:
ident ident (module name for instance)
level new log level
Returns:
application logger stream
AppLog& AppLog::operator<< ( Ident ident  )  [inline]

operator <<

Parameters:
ident module name for instance.
Returns:
application logger stream

Definition at line 427 of file applog.h.

Here is the call graph for this function:

AppLog& AppLog::operator<< ( ostream &(*)(ostream &)  pfManipulator  ) 

manipulator operator, to use ostream manipulators (i.e.

std::endl,...)

Parameters:
(* pfManipulator)(AppLog &)
Returns:
application logger stream
AppLog& AppLog::operator<< ( AppLog &(*)(AppLog &)  pfManipulator  ) 

manipulator operator, to change print levels.

Parameters:
(* pfManipulator)(AppLog &)
Returns:
application logger stream
virtual int AppLog::overflow ( int  c  )  [virtual]

stream overflow() overload.

Parameters:
c character to be managed
Returns:
c
void AppLog::slogEnable ( bool  en = true  ) 

Enables slog output for error level messages.

Parameters:
en true to enable slog output.
AppLog& AppLog::warn ( void   )  [inline]

warn level

Returns:
application logger stream

Definition at line 438 of file applog.h.

void AppLog::warn ( const char *  format,
  ... 
)

warn level printf style method, provided for convenience.

Parameters:
format printf format

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

Generated on 24 Sep 2014 for ucommon by  doxygen 1.6.1