#ifndef __LOG_CLASS__H__ #define __LOG_CLASS__H__ enum LOG_OPEN_MODE { Log_New, Log_Append }; class CLog { enum { MB = 1024 * 1024 }; enum { MAX_FILE_SIZE = 10 * MB }; CFile m_hLogFile; bool m_FlushOnWrite; stdstr m_FileName; bool m_TruncateFileLog; ULONG m_MaxFileSize; ULONG m_FileChangeSize; public: CLog ( void ); ~CLog ( void ); bool Open ( LPCTSTR FileName, LOG_OPEN_MODE mode = Log_New ); void Log ( LPCTSTR Message ); void LogF ( LPCTSTR Message, ... ); void LogArgs ( LPCTSTR Message, va_list & args ); bool Empty ( void ); void Close ( void ); inline void SetMaxFileSize ( ULONG Size ) { m_MaxFileSize = Size; m_FileChangeSize = (ULONG)(Size * 0.1); } 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 stdstr & FileName ( void ) const { return m_FileName; } }; #endif