Skeleton of application, at least compiles
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
#ifndef FELIX_THE_CAT_LOGGING_LIBRARY_HEADER_FILE_INCLUDED_EJGHJWVNKJNWKJGNKJWGJKGKJHKJH
|
||||
#define FELIX_THE_CAT_LOGGING_LIBRARY_HEADER_FILE_INCLUDED_EJGHJWVNKJNWKJGNKJWGJKGKJHKJH
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// библиотечка, выполняющая запись в логи
|
||||
// два метода - один мегафайл или много
|
||||
// файлов по одному на каждый день
|
||||
const int LIBLOGSINGLEFILE = 1;
|
||||
const int LIBLOGDAYFILES = 2;
|
||||
const int LIBLOGNUMRETRIESTOOPEN = 1;
|
||||
|
||||
|
||||
class LogFile
|
||||
{
|
||||
private:
|
||||
// запрещаем копирование и присваивание лог-файла (чтобы FILE* не копипастился почем зря)
|
||||
// Передаем всегда указатели на лог
|
||||
LogFile(const LogFile &l);
|
||||
void operator=(const LogFile &l);
|
||||
bool initialized;
|
||||
public:
|
||||
// mutex для блокирования дескриптора файла (чтобы толпой в один дескриптор не писать)
|
||||
pthread_mutex_t filemutex;
|
||||
// файл для записи
|
||||
FILE *file;
|
||||
// и его имя
|
||||
string lastname;
|
||||
int logmethod; // метод записи (смтор константы)
|
||||
string logpath; // куда писать
|
||||
string fileprefix; // префикс, который перед файлами генерировать
|
||||
bool reopen; // нужно ли каждый раз переоткрывать лог-файл
|
||||
LogFile();
|
||||
void InitLogging(string logpath, int method, string prefix = "", bool reopen = false);
|
||||
void LogString(string s, string pfx = "");
|
||||
FILE *OpenFileWithRetries(string fname, const char *mode);
|
||||
};
|
||||
|
||||
string GetHex(unsigned char c);
|
||||
string GetHexString(unsigned int a);
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user