WindowMud

Log.cpp Source Code

Download this source code in text format (Log.cpp)

/***********************************************************
* WindowMud - Window Mud Server                            *
* File:   Log.cpp                                          *
* Usage:  Logs messages to disk file                       *
*                                                          *
* No warranty is given or implied.                         *
* There is no license associated with this code.           *
* There are no restrictions on the use of this code.       *
* This code may be used in any way the reader wishes.      *
* No credit or credits are given and none are required.    *
* The reader may take this code and claim they wrote it.   *
************************************************************/

/***********************************************************
* Includes                                                 *
************************************************************/

#include "stdafx.h"         // precompiled headers
#include "Log.h"

/***********************************************************
* Globals                                                  *
************************************************************/

CStdioFile      LogFile;

/***********************************************************
* Log constructor                                          *
************************************************************/

Log::Log()
{
}

/***********************************************************
* Log destructor                                           *
************************************************************/

Log::~Log()
{
}

////////////////////////////////////////////////////////////
// Public functions static                                //
////////////////////////////////////////////////////////////

/***********************************************************
* Close log file                                           *
************************************************************/

void Log::CloseLogFile()
{
  LogFile.Close();
}

/***********************************************************
* Write log file                                           *
************************************************************/

void Log::LogIt(CString LogBuf)
{
  CTime   CurrentTime;
  CString DisplayCurrentTime;

  CurrentTime = CTime::GetCurrentTime();
  DisplayCurrentTime = CurrentTime.Format("%Y/%m/%d %H:%M:%S ");
  LogBuf  = DisplayCurrentTime + LogBuf;
  LogBuf += "\n";
  LogFile.WriteString(LogBuf);
  LogFile.Flush();
}

/***********************************************************
* Open log file                                            *
************************************************************/

void Log::OpenLogFile()
{
  CTime       CurrentTime;
  CFileStatus FileStatus;
  CString     LogFileName;
  CString     LogSaveFileName;
  CString     LogTime;
  int         Success;
 
  LogFileName = LOG_DIR;
  LogFileName += "ServerLog.txt";
  if (CFile::GetStatus(LogFileName, FileStatus))
  { // If a log file exists, rename it
    CurrentTime = CTime::GetCurrentTime();
    LogTime.Format("%d", CurrentTime);
    LogSaveFileName  = LogFileName.Left(LogFileName.GetLength()-4);
    LogSaveFileName += ".";
    LogSaveFileName += LogTime;
    LogSaveFileName += ".txt";
    CFile::Rename(LogFileName, LogSaveFileName);
  }
  Success = LogFile.Open(LogFileName,
              CFile::modeCreate     |   
              CFile::modeWrite      |
              CFile::shareDenyWrite |
              CFile::typeText);
  if(!Success)
  {
    AfxMessageBox("Log::OpenLogFile - Failed", MB_ICONSTOP);
    _endthread();
  }
}