EvolvingObjects
eoLogger Class Reference

eoLogger Class providing a verbose management through EO Use of a global variable eo::log to easily use the logger like std::cout More...

#include <eoLogger.h>

Inheritance diagram for eoLogger:
eoObject

List of all members.

Classes

class  outbuf
 outbuf this class inherits from std::streambuf which is used by eoLogger to write the buffer in an output stream More...

Public Member Functions

 eoLogger ()
 default ctor
 eoLogger (eo::file file)
 overidded ctor in order to instanciate a logger with a file define in parameter
 ~eoLogger ()
 dtor
virtual std::string className () const
 common function for all eo objects
void printLevels () const
 Print the available levels on the standard output enablable with the option -l.
eo::Levels getLevelSelected () const
eo::Levels getLevelContext () const

Protected Member Functions

void addLevel (std::string name, eo::Levels level)
 in order to add a level of verbosity

Private Types

typedef std::map< std::string,
eo::Levels > 
MapLevel
 MapLevel is the type used by the map member _levels.

Private Member Functions

void _createParameters (eoParser &)
 used by the function make_verbose in order to add options to specify the verbose level
void _init ()
 used by the set of ctors to initiate some useful variables

Private Attributes

eoValueParam< std::string > _verbose
eoValueParam< bool > _printVerboseLevels
eoValueParam< std::string > _output
eo::Levels _selectedLevel
 _selectedLevel is the member storing verbose level setted by the user thanks to operator()
eo::Levels _contextLevel
int _fd
 _fd in storing the file descriptor at this place we can disable easily the buffer in changing the value at -1.
outbuf _obuf
 _obuf std::ostream mandates to use a buffer.
MapLevel _levels
 _levels contains all the existing level order by position
std::vector< std::string > _sortedLevels
 _levelsOrder is just a list to keep the order of levels
std::map< std::ostream *, int > _standard_io_streams
 _standard_io_streams

Friends

eoLoggeroperator<< (eoLogger &, const eo::Levels)
 operator<< used there to set a verbose mode.
eoLoggeroperator<< (eoLogger &, eo::file)
 operator<< used there to set a filename through the class file.
eoLoggeroperator<< (eoLogger &, eo::setlevel)
 operator<< used there to set a verbose level through the class setlevel.
eoLoggeroperator<< (eoLogger &, std::ostream &)
 operator<< used there to be able to use std::cout to say that we wish to redirect back the buffer to a standard output.
void make_verbose (eoParser &)
 make_verbose gets level of verbose and sets it in eoLogger

Detailed Description

eoLogger Class providing a verbose management through EO Use of a global variable eo::log to easily use the logger like std::cout

Definition at line 141 of file eoLogger.h.


Member Function Documentation

eo::Levels eoLogger::getLevelSelected ( ) const [inline]

Returns the selected levels, that is the one asked by the user

Use this function if you want to be able to compare selected levels to a given one, like: if( eo::log.getLevelSelected() >= eo::progress ) {...}

Definition at line 166 of file eoLogger.h.

References _selectedLevel.

eo::Levels eoLogger::getLevelContext ( ) const [inline]

Returns the current level of the context the one given when you output message with the logger

Definition at line 171 of file eoLogger.h.


Friends And Related Function Documentation

eoLogger& operator<< ( eoLogger l,
const eo::Levels  lvl 
) [friend]

operator<< used there to set a verbose mode.

in order to use stream style to define the context verbose level where the following logs will be saved

Definition at line 158 of file eoLogger.cpp.

eoLogger& operator<< ( eoLogger l,
eo::file  f 
) [friend]

operator<< used there to set a filename through the class file.

in order to use stream style to define a file to dump instead the standart output

Definition at line 164 of file eoLogger.cpp.

eoLogger& operator<< ( eoLogger l,
eo::setlevel  v 
) [friend]

operator<< used there to set a verbose level through the class setlevel.

in order to use stream style to define manually the verbose level instead using options

Definition at line 170 of file eoLogger.cpp.

eoLogger& operator<< ( eoLogger l,
std::ostream &  os 
) [friend]

operator<< used there to be able to use std::cout to say that we wish to redirect back the buffer to a standard output.

in order to use stream style to go back to a standart output defined by STL and to get retro-compatibility

Definition at line 176 of file eoLogger.cpp.


Member Data Documentation

int eoLogger::_fd [private]

_fd in storing the file descriptor at this place we can disable easily the buffer in changing the value at -1.

It is used by operator <<.

Definition at line 250 of file eoLogger.h.

Referenced by ~eoLogger().

_obuf std::ostream mandates to use a buffer.

_obuf is a outbuf inheriting of std::streambuf.

Definition at line 255 of file eoLogger.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Friends