Espero que les sea de utilidad. Cuando quieran dejar rastros (o trace) durante la ejecucion de un programa, siempre es bueno escribir un archivo log.
El header:
/**************************************************************************** ARCHIVO : LogMens.h DESCRIPCION : MANEJO DE MENSAJES ****************************************************************************/ #ifndef _LogMessage #define _LogMessage #include class CLogMessage { private: // Atributos HANDLE m_hFile; CString m_sFechaHora; // Fecha CString m_sFileName; // Nombre del archivo // Obtiene Fecha y Hora int GetFechaHora(); // Setea Nombre Archivo int SetArchivo(LPSTR aArchivo); public: CLogMessage(LPSTR archivo); CLogMessage(); ~CLogMessage() ; // Grabar Mensaje int Grabar(LPSTR aMensaje); // Display Mensaje int Display(LPSTR aMensaje); // Inicializar atributos int Inicializar(); }; #endif
La clase :
/**************************************************************************** ARCHIVO : LogMens.cpp DESCRIPCION : MANEJO DE MENSAJES ****************************************************************************/
#include #include "CLogMessage.h"
CLogMessage::CLogMessage(LPSTR aArchivo) { m_sFileName = CString(aArchivo); }
CLogMessage::CLogMessage() { Inicializar(); }
CLogMessage::~CLogMessage() { }
int CLogMessage::Grabar(LPSTR aMensaje) { DWORD NumberOfBytesWritten; DWORD dMoveLow=0; DWORD dwError; char RCSLΑ] memset(RCSL,0,sizeof(RCSL)); RCSLΎ]=0x0D; RCSLΏ]=0x0A; m_hFile = CreateFile((LPCTSTR)m_sFileName,GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE ,NULL, OPEN_ALWAYS ,FILE_ATTRIBUTE_NORMAL,NULL); if (m_hFile == INVALID_HANDLE_VALUE) { dwError = GetLastError() ; return (int)dwError; }
dMoveLow=SetFilePointer(m_hFile,0,NULL,FILE_END); if (dMoveLow== 0xFFFFFFFF) { dwError = GetLastError() ; CloseHandle(m_hFile); return (int)dwError; } CString Buffer; GetFechaHora() ; Buffer = m_sFechaHora+CString(aMensaje);lt;BR> WriteFile(m_hFile,(LPCTSTR)Buffer,Buffer.GetLength(), &NumberOfBytesWritten,NULL); WriteFile(m_hFile,RCSL,2,&NumberOfBytesWritten,NULL); CloseHandle(m_hFile); return 0; }
int CLogMessage::GetFechaHora() { SYSTEMTIME sysTime; GetLocalTime(&sysTime); m_sFechaHora.Empty(); m_sFechaHora.Format("%2.2d/%2.2d/%4.4d %2.2d:%2.2d:%2.2d:%3.3d ",sysTime.wDay,sysTime.wMonth,sysTime.wYear,sysTime.wHour,sysTime.wMinute,sysTime.wSecond,sysTime.wMilliseconds); return 0; }
int CLogMessage::SetArchivo(LPSTR aArchivo) { m_sFileName = CString(aArchivo); return (0); }
int CLogMessage::Inicializar() { m_sFileName = CString(".\\RastreoPrograma.log"); return (0); }
|