Program Listing for File LogFile.h¶
↰ Return to documentation for file (necsim/LogFile.h
)
// This file is part of necsim project which is released under MIT license.
// See file **LICENSE.txt** or visit https://opensource.org/licenses/MIT) for full license details.
#ifndef LOGFILE_H
#define LOGFILE_H
#include <cstring>
#include <fstream>
#include <ctime>
#include <map>
#define LOGNAME_FORMAT "%d%m%Y_%H%M%S"
using namespace std;
namespace necsim
{
string getTime();
string getDefaultLogFile();
void getUniqueFileName(string &basic_string);
class LogFile
{
protected:
// output stream to log file
ofstream output_stream;
// log file name
string file_name;
// mapping integer levels to logger level
map<int, string> levels_map;
// Makes the class non-copyable as we don't want to copy file streams
LogFile(const LogFile &) = delete;
LogFile &operator=(const LogFile &) = delete;
public:
LogFile();
explicit LogFile(string file_name_in);
~LogFile();
void init(string file_name_in);
void write(const int &level, string message);
void write(const int &level, stringstream &message);
};
}
#endif //LOGFILE_H