core/CLogger.h
author David Anderson <dvander@alliedmods.net>
Fri Feb 16 03:47:10 2007 +0000 (2007-02-16)
changeset 501 e209a7296936
parent 370 d3a484f98f6d
permissions -rw-r--r--
removed this potential feature, not useful enough
dvander@370
     1
/**
dvander@370
     2
 * ===============================================================
dvander@370
     3
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
dvander@370
     4
 * ===============================================================
dvander@370
     5
 *
dvander@370
     6
 * This file is not open source and may not be copied without explicit
dvander@370
     7
 * written permission of AlliedModders LLC.  This file may not be redistributed 
dvander@370
     8
 * in whole or significant part.
dvander@370
     9
 * For information, see LICENSE.txt or http://www.sourcemod.net/license.php
dvander@370
    10
 *
dvander@370
    11
 * Version: $Id$
dvander@370
    12
 */
dvander@370
    13
faluco@266
    14
#ifndef _INCLUDE_SOURCEMOD_CLOGGER_H_
faluco@266
    15
#define _INCLUDE_SOURCEMOD_CLOGGER_H_
faluco@266
    16
dvander@300
    17
#include <sh_string.h>
dvander@271
    18
#include "sm_globals.h"
faluco@266
    19
faluco@266
    20
using namespace SourceHook;
faluco@266
    21
faluco@266
    22
enum LogType
faluco@266
    23
{
faluco@266
    24
	LogType_Normal,
faluco@266
    25
	LogType_Error
faluco@266
    26
};
faluco@266
    27
faluco@266
    28
enum LoggingMode
faluco@266
    29
{
faluco@266
    30
	LoggingMode_Daily,
faluco@266
    31
	LoggingMode_PerMap,
faluco@266
    32
	LoggingMode_HL2
faluco@266
    33
};
faluco@266
    34
faluco@281
    35
class CLogger : public SMGlobalClass
faluco@266
    36
{
faluco@266
    37
public:
faluco@270
    38
	CLogger() : m_ErrMapStart(false), m_Active(false), m_DelayedStart(false), m_DailyPrintHdr(false) {}
faluco@281
    39
public: //SMGlobalClass
faluco@281
    40
	void OnSourceModStartup(bool late);
faluco@281
    41
	void OnSourceModAllShutdown();
faluco@266
    42
public:
faluco@266
    43
	void InitLogger(LoggingMode mode, bool startlogging);
faluco@266
    44
	void CloseLogger();
faluco@266
    45
	void EnableLogging();
faluco@266
    46
	void DisableLogging();
faluco@266
    47
	void LogMessage(const char *msg, ...);
dvander@271
    48
	void LogError(const char *msg, ...);
faluco@266
    49
	void MapChange(const char *mapname);
faluco@280
    50
	const char *GetLogFileName(LogType type) const;
faluco@280
    51
	LoggingMode GetLoggingMode() const;
faluco@266
    52
private:
faluco@266
    53
	void _CloseFile();
faluco@266
    54
	void _NewMapFile();
faluco@274
    55
	void _PrintToHL2Log(const char *fmt, va_list ap);
faluco@266
    56
private:
faluco@266
    57
	String m_NrmFileName;
faluco@266
    58
	String m_ErrFileName;
faluco@266
    59
	String m_CurMapName;
faluco@266
    60
	LoggingMode m_mode;
faluco@266
    61
	int m_CurDay;
faluco@266
    62
	bool m_ErrMapStart;
faluco@266
    63
	bool m_Active;
faluco@266
    64
	bool m_DelayedStart;
faluco@266
    65
	bool m_DailyPrintHdr;
faluco@266
    66
};
faluco@266
    67
faluco@266
    68
extern CLogger g_Logger;
faluco@266
    69
dvander@300
    70
#endif // _INCLUDE_SOURCEMOD_CLOGGER_H_