dvander@370: /** dvander@370: * =============================================================== dvander@370: * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved. dvander@370: * =============================================================== dvander@370: * dvander@370: * This file is not open source and may not be copied without explicit dvander@370: * written permission of AlliedModders LLC. This file may not be redistributed dvander@370: * in whole or significant part. dvander@370: * For information, see LICENSE.txt or http://www.sourcemod.net/license.php dvander@370: * dvander@370: * Version: $Id$ dvander@370: */ dvander@370: faluco@266: #ifndef _INCLUDE_SOURCEMOD_CLOGGER_H_ faluco@266: #define _INCLUDE_SOURCEMOD_CLOGGER_H_ faluco@266: dvander@300: #include dvander@271: #include "sm_globals.h" faluco@266: faluco@266: using namespace SourceHook; faluco@266: faluco@266: enum LogType faluco@266: { faluco@266: LogType_Normal, faluco@266: LogType_Error faluco@266: }; faluco@266: faluco@266: enum LoggingMode faluco@266: { faluco@266: LoggingMode_Daily, faluco@266: LoggingMode_PerMap, faluco@266: LoggingMode_HL2 faluco@266: }; faluco@266: faluco@281: class CLogger : public SMGlobalClass faluco@266: { faluco@266: public: faluco@270: CLogger() : m_ErrMapStart(false), m_Active(false), m_DelayedStart(false), m_DailyPrintHdr(false) {} faluco@281: public: //SMGlobalClass faluco@281: void OnSourceModStartup(bool late); faluco@281: void OnSourceModAllShutdown(); faluco@266: public: faluco@266: void InitLogger(LoggingMode mode, bool startlogging); faluco@266: void CloseLogger(); faluco@266: void EnableLogging(); faluco@266: void DisableLogging(); faluco@266: void LogMessage(const char *msg, ...); dvander@271: void LogError(const char *msg, ...); faluco@266: void MapChange(const char *mapname); faluco@280: const char *GetLogFileName(LogType type) const; faluco@280: LoggingMode GetLoggingMode() const; faluco@266: private: faluco@266: void _CloseFile(); faluco@266: void _NewMapFile(); faluco@274: void _PrintToHL2Log(const char *fmt, va_list ap); faluco@266: private: faluco@266: String m_NrmFileName; faluco@266: String m_ErrFileName; faluco@266: String m_CurMapName; faluco@266: LoggingMode m_mode; faluco@266: int m_CurDay; faluco@266: bool m_ErrMapStart; faluco@266: bool m_Active; faluco@266: bool m_DelayedStart; faluco@266: bool m_DailyPrintHdr; faluco@266: }; faluco@266: faluco@266: extern CLogger g_Logger; faluco@266: dvander@300: #endif // _INCLUDE_SOURCEMOD_CLOGGER_H_