bluecore/engine/Utilities/Log.cpp

76 lines
1.7 KiB
C++

#include "Log.h"
#include <ctime>
namespace BlueCore
{
//--------------------------------------------------------------------------
Log::Log() :
_LogFilename( "log.txt" )
{
reset();
}
//--------------------------------------------------------------------------
void Log::reset()
{
std::ifstream testfile( _LogFilename.c_str() );
if( testfile.is_open() )
{
testfile.close();
_LogFile.open( _LogFilename.c_str(), std::ios::trunc );
_LogFile.close();
}
}
//--------------------------------------------------------------------------
void Log::setFilename( const std::string &name )
{
_LogFilename = name;
reset();
}
//--------------------------------------------------------------------------
Log &Log::operator << (const EndLine &e)
{
_LogFile << '\n';
std::cout << '\n';
return *this;
}
//--------------------------------------------------------------------------
Log &Log::operator << (const EndLog &e)
{
_LogFile << '\n';
_LogFile.close();
std::cout << '\n';
std::cout.flush();
return *this;
}
//--------------------------------------------------------------------------
Log &Log::operator << (const Time &t)
{
std::time_t rawtime;
std::time ( &rawtime );
char *tc = std::ctime( &rawtime );
_LogFile << tc;
std::cout << tc;
return *this;
}
//--------------------------------------------------------------------------
Log &Log::operator << (const Flush &f)
{
_LogFile.close();
std::cout.flush();
return *this;
}
//--------------------------------------------------------------------------
Log::EndLine endline;
Log::EndLog endlog;
Log::Time time;
Log::Flush flush;
Log clog;
}