* eoLogger: overidded ctor in order to define a file to dump
This commit is contained in:
parent
0ce639e13a
commit
8567bc5d28
2 changed files with 54 additions and 15 deletions
|
|
@ -40,17 +40,7 @@ Authors:
|
||||||
|
|
||||||
#include "eoLogger.h"
|
#include "eoLogger.h"
|
||||||
|
|
||||||
eoLogger::eoLogger() :
|
void eoLogger::_init()
|
||||||
std::ostream(&_obuf),
|
|
||||||
|
|
||||||
_verbose("quiet", "verbose", "Set the verbose level", 'v'),
|
|
||||||
_printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'),
|
|
||||||
_output("", "output", "Redirect a standard output to a file", 'o'),
|
|
||||||
|
|
||||||
_selectedLevel(eo::progress),
|
|
||||||
_contextLevel(eo::quiet),
|
|
||||||
_fd(2),
|
|
||||||
_obuf(_fd, _contextLevel, _selectedLevel)
|
|
||||||
{
|
{
|
||||||
_standard_io_streams[&std::cout] = 1;
|
_standard_io_streams[&std::cout] = 1;
|
||||||
_standard_io_streams[&std::clog] = 2;
|
_standard_io_streams[&std::clog] = 2;
|
||||||
|
|
@ -67,6 +57,37 @@ eoLogger::eoLogger() :
|
||||||
addLevel("xdebug", eo::xdebug);
|
addLevel("xdebug", eo::xdebug);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
eoLogger::eoLogger() :
|
||||||
|
std::ostream(&_obuf),
|
||||||
|
|
||||||
|
_verbose("quiet", "verbose", "Set the verbose level", 'v'),
|
||||||
|
_printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'),
|
||||||
|
_output("", "output", "Redirect a standard output to a file", 'o'),
|
||||||
|
|
||||||
|
_selectedLevel(eo::progress),
|
||||||
|
_contextLevel(eo::quiet),
|
||||||
|
_fd(2),
|
||||||
|
_obuf(_fd, _contextLevel, _selectedLevel)
|
||||||
|
{
|
||||||
|
_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
eoLogger::eoLogger(eo::file file) :
|
||||||
|
std::ostream(&_obuf),
|
||||||
|
|
||||||
|
_verbose("quiet", "verbose", "Set the verbose level", 'v'),
|
||||||
|
_printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l'),
|
||||||
|
_output("", "output", "Redirect a standard output to a file", 'o'),
|
||||||
|
|
||||||
|
_selectedLevel(eo::progress),
|
||||||
|
_contextLevel(eo::quiet),
|
||||||
|
_fd(2),
|
||||||
|
_obuf(_fd, _contextLevel, _selectedLevel)
|
||||||
|
{
|
||||||
|
_init();
|
||||||
|
*this << file;
|
||||||
|
}
|
||||||
|
|
||||||
eoLogger::~eoLogger()
|
eoLogger::~eoLogger()
|
||||||
{
|
{
|
||||||
if (_fd > 2) { ::close(_fd); }
|
if (_fd > 2) { ::close(_fd); }
|
||||||
|
|
@ -99,7 +120,7 @@ void eoLogger::_createParameters( eoParser& parser )
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
// // we're gonna print the list of levels if -l parameter is used.
|
// we're gonna print the list of levels if -l parameter is used.
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
if ( _printVerboseLevels.value() )
|
if ( _printVerboseLevels.value() )
|
||||||
|
|
@ -195,7 +216,6 @@ namespace eo
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
|
|
||||||
//! make_verbose gets level of verbose and sets it in eoLogger
|
|
||||||
void make_verbose(eoParser& parser)
|
void make_verbose(eoParser& parser)
|
||||||
{
|
{
|
||||||
eo::log._createParameters( parser );
|
eo::log._createParameters( parser );
|
||||||
|
|
|
||||||
|
|
@ -142,12 +142,20 @@ class eoLogger : public eoObject,
|
||||||
public std::ostream
|
public std::ostream
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
//! default ctor
|
||||||
eoLogger();
|
eoLogger();
|
||||||
|
|
||||||
|
//! overidded ctor in order to instanciate a logger with a file define in parameter
|
||||||
|
eoLogger(eo::file file);
|
||||||
|
|
||||||
|
//! dtor
|
||||||
~eoLogger();
|
~eoLogger();
|
||||||
|
|
||||||
|
//! common function for all eo objects
|
||||||
virtual std::string className() const;
|
virtual std::string className() const;
|
||||||
|
|
||||||
//! Print the available levels on the standard output
|
//! Print the available levels on the standard output
|
||||||
|
//! enablable with the option -l
|
||||||
void printLevels() const;
|
void printLevels() const;
|
||||||
|
|
||||||
/*! Returns the selected levels, that is the one asked by the user
|
/*! Returns the selected levels, that is the one asked by the user
|
||||||
|
|
@ -163,11 +171,16 @@ public:
|
||||||
inline eo::Levels getLevelContext() const { return _contextLevel; }
|
inline eo::Levels getLevelContext() const { return _contextLevel; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
//! in order to add a level of verbosity
|
||||||
void addLevel(std::string name, eo::Levels level);
|
void addLevel(std::string name, eo::Levels level);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
//! used by the function make_verbose in order to add options to specify the verbose level
|
||||||
void _createParameters( eoParser& );
|
void _createParameters( eoParser& );
|
||||||
|
|
||||||
|
//! used by the set of ctors to initiate some useful variables
|
||||||
|
void _init();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
* outbuf
|
* outbuf
|
||||||
|
|
@ -195,21 +208,26 @@ public:
|
||||||
/**
|
/**
|
||||||
* operator<< used there to set a verbose mode.
|
* 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
|
||||||
friend eoLogger& operator<<(eoLogger&, const eo::Levels);
|
friend eoLogger& operator<<(eoLogger&, const eo::Levels);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* operator<< used there to set a filename through the class file.
|
* 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
|
||||||
friend eoLogger& operator<<(eoLogger&, eo::file);
|
friend eoLogger& operator<<(eoLogger&, eo::file);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* operator<< used there to set a verbose level through the class setlevel.
|
* 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
|
||||||
friend eoLogger& operator<<(eoLogger&, eo::setlevel);
|
friend eoLogger& operator<<(eoLogger&, eo::setlevel);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* operator<< used there to be able to use std::cout to say that we wish to redirect back the buffer to a standard output.
|
* 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
|
||||||
friend eoLogger& operator<<(eoLogger&, std::ostream&);
|
friend eoLogger& operator<<(eoLogger&, std::ostream&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -254,6 +272,7 @@ private:
|
||||||
/** @example t-eoLogger.cpp
|
/** @example t-eoLogger.cpp
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//! make_verbose gets level of verbose and sets it in eoLogger
|
||||||
void make_verbose(eoParser&);
|
void make_verbose(eoParser&);
|
||||||
|
|
||||||
namespace eo
|
namespace eo
|
||||||
|
|
|
||||||
Reference in a new issue