Bonjour à tous,
Je suis en train de programmer une classe Logger qui me permettra de debugger mes programmes. J'ai un petit soucis sur l'écriture de données dans mon fichier. voici mon code :
Logger.hclass Logger{
public:
Logger(const string FilName="OutPut.log");
Logger(const Logger&){};
~Logger();
void Log(const string& Msg);
template <class T>
Logger& operator <<(T &ToLog);
protected:
ofstream m_File;
};
template <class T>
Logger &Logger::operator <<(T &ToLog)
{
std::ostringstream Stream;
Stream << ToLog;
Log(Stream.str());
return *this;
}
Logger.cpp
[...]
void Logger::Log(const string& Msg)
{
m_File<<Msg;
}
[...]
Le probleme c'est que le fichier est vide que je fasse Log<<"Message" ou Log.Log("Message") dans la fonction main.
J'ai executé le programme en pas à pas et à la ligne : m_File<<Msg, le message existe et est corecte. Si je remplace cette ligne par m_File<<Msg<<endl; a ce moment, le fichier est bien écrit.
Voila quelqu'un aurait il une idée sur ce qui se passe ?
Merci
Damien
NB: je suis sous linux (ubuntu) ca à peut être une influence.
*
Les fautes d'orthographes jointes à la présente missive, sont la propriété exclusive de l'auteur. Toute copie illégale pourra être passive de poursuites judiciaires, et soumises à des peines et sanctions exemplaitres