Merge branch 'master' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev
This commit is contained in:
commit
a0874576bf
2 changed files with 54 additions and 15 deletions
|
|
@ -21,8 +21,8 @@
|
|||
Contact: http://eodev.sourceforge.net
|
||||
|
||||
Authors:
|
||||
Johann Dréo <johann.dreo@thalesgroup.com>
|
||||
Caner Candan <caner.candan@thalesgroup.com>
|
||||
Johann Dréo <johann.dreo@thalesgroup.com>
|
||||
Caner Candan <caner.candan@thalesgroup.com>
|
||||
|
||||
*/
|
||||
|
||||
|
|
@ -40,17 +40,7 @@ Authors:
|
|||
|
||||
#include "eoLogger.h"
|
||||
|
||||
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)
|
||||
void eoLogger::_init()
|
||||
{
|
||||
_standard_io_streams[&std::cout] = 1;
|
||||
_standard_io_streams[&std::clog] = 2;
|
||||
|
|
@ -67,6 +57,37 @@ eoLogger::eoLogger() :
|
|||
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()
|
||||
{
|
||||
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() )
|
||||
|
|
@ -195,7 +216,6 @@ namespace eo
|
|||
{}
|
||||
}
|
||||
|
||||
//! make_verbose gets level of verbose and sets it in eoLogger
|
||||
void make_verbose(eoParser& parser)
|
||||
{
|
||||
eo::log._createParameters( parser );
|
||||
|
|
|
|||
|
|
@ -142,12 +142,20 @@ class eoLogger : public eoObject,
|
|||
public std::ostream
|
||||
{
|
||||
public:
|
||||
//! default ctor
|
||||
eoLogger();
|
||||
|
||||
//! overidded ctor in order to instanciate a logger with a file define in parameter
|
||||
eoLogger(eo::file file);
|
||||
|
||||
//! dtor
|
||||
~eoLogger();
|
||||
|
||||
//! common function for all eo objects
|
||||
virtual std::string className() const;
|
||||
|
||||
//! Print the available levels on the standard output
|
||||
//! enablable with the option -l
|
||||
void printLevels() const;
|
||||
|
||||
/*! Returns the selected levels, that is the one asked by the user
|
||||
|
|
@ -163,11 +171,16 @@ public:
|
|||
inline eo::Levels getLevelContext() const { return _contextLevel; }
|
||||
|
||||
protected:
|
||||
//! in order to add a level of verbosity
|
||||
void addLevel(std::string name, eo::Levels level);
|
||||
|
||||
private:
|
||||
//! used by the function make_verbose in order to add options to specify the verbose level
|
||||
void _createParameters( eoParser& );
|
||||
|
||||
//! used by the set of ctors to initiate some useful variables
|
||||
void _init();
|
||||
|
||||
private:
|
||||
/**
|
||||
* outbuf
|
||||
|
|
@ -195,21 +208,26 @@ public:
|
|||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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&);
|
||||
|
||||
private:
|
||||
|
|
@ -254,6 +272,7 @@ private:
|
|||
/** @example t-eoLogger.cpp
|
||||
*/
|
||||
|
||||
//! make_verbose gets level of verbose and sets it in eoLogger
|
||||
void make_verbose(eoParser&);
|
||||
|
||||
namespace eo
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue