project64/Source/Common/Log.h

72 lines
1.4 KiB
C
Raw Normal View History

#pragma once
2022-10-03 08:04:42 +00:00
#include "File.h"
2016-05-03 02:48:49 +00:00
#include <stdarg.h>
2016-04-19 10:37:41 +00:00
#include <string>
class CLog
{
2016-04-19 10:37:41 +00:00
public:
enum LOG_OPEN_MODE
{
2022-10-03 08:04:42 +00:00
Log_New,
Log_Append
};
enum
{
MB = 1024 * 1024
};
enum
{
MAX_FILE_SIZE = 10 * MB
2016-04-19 10:37:41 +00:00
};
2016-01-12 18:48:35 +00:00
CLog(void);
~CLog(void);
2016-01-12 18:48:35 +00:00
bool Open(const char * FileName, LOG_OPEN_MODE mode = Log_New);
void Log(const char * Message);
void LogF(const char * Message, ...);
void LogArgs(const char * Message, va_list & args);
bool Empty(void);
void Close(void);
inline void SetMaxFileSize(uint32_t Size)
{
m_MaxFileSize = Size;
m_FileChangeSize = (uint32_t)(Size * 0.1);
}
2022-10-03 08:04:42 +00:00
inline void SetTruncateFile(bool Truncate)
{
m_TruncateFileLog = Truncate;
}
inline void SetFlush(bool Always)
{
m_FlushOnWrite = Always;
}
inline bool IsOpen(void) const
{
return m_hLogFile.IsOpen();
}
inline bool Flush(void)
{
return m_hLogFile.Flush();
}
inline const std::string & FileName(void) const
{
return m_FileName;
}
2016-04-19 10:37:41 +00:00
private:
2022-10-03 08:04:42 +00:00
CLog(const CLog &);
CLog & operator=(const CLog &);
2016-04-19 10:37:41 +00:00
CFile m_hLogFile;
bool m_FlushOnWrite;
std::string m_FileName;
bool m_TruncateFileLog;
2017-01-03 05:21:35 +00:00
uint32_t m_FileSize;
2016-04-19 10:37:41 +00:00
uint32_t m_MaxFileSize;
uint32_t m_FileChangeSize;
};