LogMessenger.cc

Go to the documentation of this file.
00001 // $Id: LogMessenger.cc,v 1.11 2008/04/09 22:09:36 jeremy Exp $
00002 
00003 #include "LogMessenger.hh"
00004 
00005 // slic
00006 #include "LogStream.hh"
00007 #include "StringUtil.hh"
00008 
00009 // geant4
00010 #include "G4UIcmdWithAnInteger.hh"
00011 #include "G4UIcmdWithAString.hh"
00012 #include "G4UIdirectory.hh"
00013 
00014 namespace slic
00015 {
00016   LogMessenger::LogMessenger(LogStream* logger)
00017     : m_logStream( logger )
00018   {
00019     defineCommands();
00020   }
00021   
00022   LogMessenger::~LogMessenger()
00023   {;}
00024   
00025   void LogMessenger::SetNewValue(G4UIcommand* cmd, G4String newVals)
00026   {
00027     if ( cmd == m_setLevelCmd ) {
00028       m_logStream->setOutputLevel( (LOG::ELevel)G4UIcmdWithAnInteger::GetNewIntValue( newVals ) );
00029     }
00030     else if ( cmd == m_fileCmd ) {
00031       m_logStream->setOutputFile( newVals );
00032     }
00033   }
00034   
00035   void LogMessenger::defineCommands()
00036   {
00037     m_loggerDir = new G4UIdirectory( std::string( "/log/" + m_logStream->getName() + "/" ).c_str() );
00038     m_loggerDir->SetGuidance( std::string( "Commands for the logger " + m_logStream->getName() ).c_str() );
00039     
00040     m_setLevelCmd = new G4UIcmdWithAnInteger( std::string("/log/" + m_logStream->getName() + "/setLogLevel" ).c_str(), this );
00041     m_setLevelCmd->SetParameterName( "logLevel", false );
00042     std::string range = "logLevel >= 0 && logLevel < " + StringUtil::toString( LOG::nlevels );
00043     m_setLevelCmd->SetRange( range.c_str() );
00044     m_setLevelCmd->SetGuidance("Set the log level.");
00045 
00046     m_fileCmd = new G4UIcmdWithAString( std::string("/log/" + m_logStream->getName() + "/setLogFile" ).c_str(), this );
00047     m_fileCmd->SetParameterName( "file", false );
00048     m_fileCmd->SetGuidance("Set the output file for this logger.");
00049   }
00050 }

Generated on Mon Jun 7 17:45:20 2010 for Simulator for the Linear Collider by  doxygen 1.5.4