Merge branch 'master' of ssh://eodev.git.sourceforge.net/gitroot/eodev/eodev

This commit is contained in:
Caner Candan 2011-07-24 23:49:09 +02:00
commit a0874576bf
2 changed files with 54 additions and 15 deletions

View file

@ -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 );

View file

@ -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