yaustar
UK GP32 & GP2X Owner
Currently I have a class to create a log file on Windows platform, but on the GP2X/Linux, it doesn't create one. Can anyone tell me the reason why?
Cheers
Cheers
Code:
//! A class to write logs to a file
#ifndef LOGGER_H
#define LOGGER_H
#include <fstream>
#include <iostream>
#include <string>
namespace LogModule
{
class Logger
{
private:
//! Stream to the file
std::ofstream _OutFileStream;
public:
//! Standard constructor. Clears the existing error log file and open the file
/**
\param Filename const string& to the file to be used
*/
Logger(const std::string &Filename)
{
std::cerr << "<< Opening Logfile " << Filename << " >>" << std::endl;
// Open the file stream
_OutFileStream.open(Filename.c_str() );
// Check the stream
if(_OutFileStream.fail() )
std::cerr << "Error opening log file" << std::endl;
_OutFileStream << "<< Opened Log File >>\n";
}
//! Standard Destructor. Closes the stream to the file
~Logger(void)
{
std::cerr << "<< Closing File >>" << std::endl;
_OutFileStream << "<< Closed Log File >>\n";
// Close the file stream if it is open
if(_OutFileStream.is_open() )
_OutFileStream.close();
}
// Lots of operator overloads
// TODO[2006-06-01]: Need a cleaner way of doing this
//! Operator << overloader for strings and char*
std::ostream& operator << (const std::string &OutString)
{
_OutFileStream << OutString;
_OutFileStream.flush();
return _OutFileStream;
}
//! Operator << overloader for signed intergers
std::ostream& operator << (const signed int &OutInt)
{
_OutFileStream << OutInt;
_OutFileStream.flush();
return _OutFileStream;
}
//! Operator << overloader for unsigned intergers
std::ostream& operator << (const unsigned int &OutInt)
{
_OutFileStream << OutInt;
_OutFileStream.flush();
return _OutFileStream;
}
//! Operator << overloader for signed chars
std::ostream& operator << (const signed char &OutChar)
{
_OutFileStream << OutChar;
_OutFileStream.flush();
return _OutFileStream;
}
//! Operator << overloader for unsigned chars
std::ostream& operator << (const unsigned char &OutChar)
{
_OutFileStream << OutChar;
_OutFileStream.flush();
return _OutFileStream;
}
//! Operator << overloader for floats
std::ostream& operator << (const float &OutFloat)
{
_OutFileStream << OutFloat;
_OutFileStream.flush();
return _OutFileStream;
}
//! Operator << overloader for doubles
std::ostream& operator << (const double &OutDouble)
{
_OutFileStream << OutDouble;
_OutFileStream.flush();
return _OutFileStream;
}
/*//! Operator << overloader for boolean
std::ostream& operator << (const bool &OutBool)
{
_OutFileStream << OutBool;
_OutFileStream.flush();
return _OutFileStream;
}*/
};
//! Global error log
extern Logger ErrLog;
};
#endif // LOGGER_H
/*
History
=======
2006-06-01: Created a global error log file
2006-06-01: Created header and source file with code
*/