Как создать лог-файлы в C ++ - PullRequest
1 голос
/ 05 февраля 2012

Мне нужно создать файл журнала. Я не знаю, какие ошибки нужно помещать в файл журнала. У меня есть следующий код (но я не знаю, почему не записывает в конец файла)

log.cpp

#include "log.h"
#include <ctime>
#include <iostream>
using namespace std;
Log::Log(char* filename) {
//ofstream m_stream(filename);
m_stream.open(filename);

}

В test.cpp у меня есть pLOg-> Write (c). Я не понимаю, почему переписывает файл и почему не пишет в нем.

void Log::Write(char* logline)
{
time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  m_stream.seekp (0, ios::end); 
  while ((m_stream.eof())){}
  {
  m_stream <<"current time: "<< asctime (timeinfo) <<" "<< logline << endl;
  }

}

Log::~Log(){

  m_stream.close();
}

log.h

#include <fstream>

using namespace std;

class Log {
  public:
    Log(char* filename);
    ~Log();
    void Write(char* logline);
private:
    ofstream m_stream;
};

Ответы [ 2 ]

3 голосов
/ 05 февраля 2012
m_stream.open(filename, ios_base::app | ios_base::out);
0 голосов
/ 05 февраля 2012

Измените конструктор на:

Log::Log(char* filename) {
    m_stream.open(filename, std::ios::out | std::ios::app);
}

Дополнительные пояснения: http://en.allexperts.com/q/C-1040/apped-data-enf-text.htm

...