From 5bd0baace7402bb0ff61636301d181429d53b299 Mon Sep 17 00:00:00 2001 From: Caner Candan Date: Wed, 1 Sep 2010 12:01:42 +0200 Subject: [PATCH] eo::log: added the parameter -o in order to define a log file + removed some warning messages at compile time --- eo/src/utils/eoParserLogger.cpp | 42 +++++++++++++++++++++++++++------ eo/src/utils/eoParserLogger.h | 1 + eo/src/utils/make_help.cpp | 6 +++-- eo/test/t-eoLogger.cpp | 6 +++++ 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/eo/src/utils/eoParserLogger.cpp b/eo/src/utils/eoParserLogger.cpp index 7e1ecd651..21b67f6c6 100644 --- a/eo/src/utils/eoParserLogger.cpp +++ b/eo/src/utils/eoParserLogger.cpp @@ -17,8 +17,8 @@ Contact: http://eodev.sourceforge.net Authors: - Johann Dreo - Caner Candan +Johann Dreo +Caner Candan */ @@ -30,16 +30,44 @@ eoParserLogger::eoParserLogger(unsigned _argc, char** _argv, std::string _lFileParamName /*= "param-file"*/, char _shortHand /*= 'p'*/) : eoParser(_argc, _argv, _programDescription, _lFileParamName, _shortHand), - _verbose("quiet", "verbose", "Set the verbose level", 'v'), - _printVerboseLevels(false, "print-verbose-levels", "Print verbose levels", 'l') + _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') { + //------------------------------------------------------------------ + // we are saying to eoParser to create the parameters created above. + //------------------------------------------------------------------ + processParam(_verbose); processParam(_printVerboseLevels); + processParam(_output); - if (!_printVerboseLevels.value()) - return; + //------------------------------------------------------------------ + + + //------------------------------------------------------------------ + // we're gonna redirect the log to the given filename if -o is used. + //------------------------------------------------------------------ + + if ( ! _output.value().empty() ) + { + eo::log << eo::file( _output.value() ); + } + + //------------------------------------------------------------------ + + + //------------------------------------------------------------------ + // // we're gonna print the list of levels if -l parameter is used. + //------------------------------------------------------------------ + + if ( _printVerboseLevels.value() ) + { + eo::log.printLevels(); + } + + //------------------------------------------------------------------ - eo::log.printLevels(); } eoParserLogger::~eoParserLogger() diff --git a/eo/src/utils/eoParserLogger.h b/eo/src/utils/eoParserLogger.h index 3bf6b2dcc..55801105f 100644 --- a/eo/src/utils/eoParserLogger.h +++ b/eo/src/utils/eoParserLogger.h @@ -43,6 +43,7 @@ private: friend void make_verbose(eoParserLogger&); eoValueParam _verbose; eoValueParam _printVerboseLevels; + eoValueParam _output; }; void make_verbose(eoParserLogger&); diff --git a/eo/src/utils/make_help.cpp b/eo/src/utils/make_help.cpp index e83b4f1a3..a9aa74f97 100644 --- a/eo/src/utils/make_help.cpp +++ b/eo/src/utils/make_help.cpp @@ -90,14 +90,16 @@ bool testDirRes(std::string _dirName, bool _erase=true) if (res) // no dir present { s = string("mkdir ")+ _dirName; - system(s.c_str()); + int res = system(s.c_str()); + (void)res; return true; } // else if (_erase) // OK to erase { s = string("/bin/rm ")+ _dirName + "/*"; - system(s.c_str()); + int res = system(s.c_str()); + (void)res; return true; } //else diff --git a/eo/test/t-eoLogger.cpp b/eo/test/t-eoLogger.cpp index cea441662..b263b7b83 100644 --- a/eo/test/t-eoLogger.cpp +++ b/eo/test/t-eoLogger.cpp @@ -6,18 +6,24 @@ #include #include +#include + //----------------------------------------------------------------------------- int main(int ac, char** av) { eoParserLogger parser(ac, av); + make_help(parser); + make_verbose(parser); eo::log << eo::setlevel(eo::debug); eo::log << eo::warnings; + eo::log << "We are written on the default defined standard output" << std::endl; + eo::log << eo::file("test.txt") << "In FILE" << std::endl; eo::log << std::cout << "In COUT" << std::endl;