[Common] Get logs to track file size
This commit is contained in:
parent
bfb64dc458
commit
45c6d0d157
|
@ -222,7 +222,9 @@ bool CFile::Flush()
|
|||
|
||||
return ::FlushFileBuffers(m_hFile) != 0;
|
||||
#else
|
||||
return fflush((FILE *)m_hFile) == 0;
|
||||
fflush((FILE *)m_hFile);
|
||||
fsync(fileno((FILE *)m_hFile));
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,8 @@ CLog::CLog (void ) :
|
|||
m_FlushOnWrite(false),
|
||||
m_TruncateFileLog(true),
|
||||
m_MaxFileSize(MAX_FILE_SIZE),
|
||||
m_FileChangeSize(0)
|
||||
m_FileChangeSize(0),
|
||||
m_FileSize(0)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -37,6 +38,7 @@ bool CLog::Open( const char * FileName, LOG_OPEN_MODE mode /* = Log_New */)
|
|||
}
|
||||
m_FileName = (const char *)File;
|
||||
m_hLogFile.Seek(0,mode == Log_Append ? CFile::end : CFile::begin);
|
||||
m_FileSize = mode == Log_Append ? m_hLogFile.GetLength() : 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -80,23 +82,25 @@ void CLog::LogArgs(const char * Message, va_list & args )
|
|||
void CLog::Log( const char * Message )
|
||||
{
|
||||
if (!m_hLogFile.IsOpen()) { return; }
|
||||
m_hLogFile.Write(Message,(uint32_t)strlen(Message)*sizeof(char));
|
||||
uint32_t message_len = strlen(Message);
|
||||
m_hLogFile.Write(Message, message_len);
|
||||
if (m_FlushOnWrite)
|
||||
{
|
||||
m_hLogFile.Flush();
|
||||
}
|
||||
|
||||
if (m_TruncateFileLog)
|
||||
m_FileSize += message_len;
|
||||
if (m_TruncateFileLog && m_FileSize > m_MaxFileSize)
|
||||
{
|
||||
// check file size
|
||||
uint32_t FileSize = m_hLogFile.GetLength();
|
||||
m_FileSize = m_hLogFile.GetLength();
|
||||
// if larger then max size then
|
||||
if (FileSize > m_MaxFileSize)
|
||||
if (m_FileSize > m_MaxFileSize)
|
||||
{
|
||||
if (!m_FlushOnWrite)
|
||||
{
|
||||
m_hLogFile.Flush();
|
||||
FileSize = m_hLogFile.GetLength();
|
||||
m_FileSize = m_hLogFile.GetLength();
|
||||
}
|
||||
|
||||
uint32_t end = m_hLogFile.SeekToEnd();
|
||||
|
@ -160,6 +164,7 @@ void CLog::Log( const char * Message )
|
|||
//clean up
|
||||
m_hLogFile.SetEndOfFile();
|
||||
m_hLogFile.Flush();
|
||||
m_FileSize = m_hLogFile.GetLength();
|
||||
} // end if
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ private:
|
|||
bool m_FlushOnWrite;
|
||||
std::string m_FileName;
|
||||
bool m_TruncateFileLog;
|
||||
uint32_t m_FileSize;
|
||||
uint32_t m_MaxFileSize;
|
||||
uint32_t m_FileChangeSize;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue