00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00030 #include "claw/application.hpp"
00031 #include <claw/logger.hpp>
00032
00033
00042 claw::application::application( int& argc, char** &argv )
00043 : m_arguments( argc, argv )
00044 {
00045 m_arguments.add_long("--log-file",
00046 "The file to use to store log informations.", true,
00047 "file" );
00048 m_arguments.add_long("--log-level",
00049 "Level of log informations:\n"
00050 "\t\terror: error messages,\n"
00051 "\t\twarning: warning and error messages,\n"
00052 "\t\tverbose: all messages.", true, "string" );
00053
00054 if ( m_arguments.has_value("--log-file") )
00055 {
00056 std::string log_file = m_arguments.get_string("--log-file");
00057 logger.set( new file_logger(log_file) );
00058 }
00059 else
00060 logger.set( new console_logger() );
00061
00062 if ( m_arguments.has_value( "--log-level" ) )
00063 {
00064 std::string level = m_arguments.get_string("--log-level");
00065
00066 if (level == "error")
00067 logger.set_level( log_error );
00068 else if (level == "warning")
00069 logger.set_level( log_warning );
00070 else if (level == "verbose")
00071 logger.set_level( log_verbose );
00072 else
00073 logger.set_level( m_arguments.get_integer("--log-level") );
00074 }
00075
00076 }
00077
00078
00082 claw::application::~application()
00083 {
00084 logger.clear();
00085 }