SmaugWizard/Backup/
SmaugWizard/Backup/L/
SmaugWizard/Boards/
SmaugWizard/Building/
SmaugWizard/Corpses/
SmaugWizard/Councils/
SmaugWizard/Deity/
SmaugWizard/Gods/
SmaugWizard/MudProgs/
SmaugWizard/Player/L/
SmaugWizard/Src/
SmaugWizard/Src/res/
/****************************************************************************
 * [S]imulated [M]edieval [A]dventure multi[U]ser [G]ame      |				*
 * -----------------------------------------------------------|   \\._.//	*
 * SmaugWiz (C) 1998 by Russ Pillsbury (Windows NT version)   |   (0...0)	*
 * -----------------------------------------------------------|    ).:.(	*
 * SMAUG (C) 1994, 1995, 1996 by Derek Snider                 |    {o o}	*
 * -----------------------------------------------------------|   / ' ' \	*
 * SMAUG code team: Thoric, Altrag, Blodkai, Narn, Haus,      |~'~.VxvxV.~'~*
 * Scryn, Swordbearer, Rennard, Tricops, and Gorog.           |				*
 * ------------------------------------------------------------------------ *
 * Merc 2.1 Diku Mud improvments copyright (C) 1992, 1993 by Michael        *
 * Chastain, Michael Quan, and Mitchell Tse.                                *
 * Original Diku Mud copyright (C) 1990, 1991 by Sebastian Hammer,          *
 * Michael Seifert, Hans Henrik Staerfeldt, Tom Madsen, and Katja Nyboe.    *
 * ------------------------------------------------------------------------ *
 *			    Area Interface file											*
 ****************************************************************************/

#ifndef	LOG_H
#define	LOG_H

// Command logging types.
enum LogTypes { LOG_NORMAL, LOG_ALWAYS, LOG_NEVER, LOG_BUILD, LOG_HIGH,
				 LOG_COMM, LOG_RESET, LOG_BOOT, LOG_BUG, LOG_ALL, 
				 LOG_PLAYER, LOG_END };

#define STDERR_FILE	"stderr.txt"	// For what Unix writes to standard error

class CLog {
public:
			CLog (const char* name);
			~CLog ();
	void	Open ();
	void	Close ();
	void	SetType (LogTypes t, BOOL bState = TRUE);
	void	SetFromSysData ();
	BOOL	IsLogged (LogTypes t) { return t == LOG_ALWAYS || m_Types [t]; }
	void	SetLeaveOpen (BOOL b = TRUE) { m_bLeaveOpen = b; }
	void	Print (LogTypes t, const char* s);
	void	Printf (LogTypes t, const char* fmt, ...);
	long	GetSize ();
	void	Archive ();

	FILE	*m_fp;
	CString	m_Name;
	BOOL	m_bLeaveOpen;
	BOOL	m_Types [LOG_END];		
};

#endif