MUGPERU
  Search 
Tuesday, January 06, 2009 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Clase para escribir en un archivo log, rastreo de programa
Prev Next
You are not authorized to post a reply.

Author Messages
ospochu
Posts:33

22/08/2005 08:54 PM  

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);
}

You are not authorized to post a reply.
Forums > Lenguajes de Programación > C++ > Clase para escribir en un archivo log, rastreo de programa



ActiveForums 3.7
        
Copyright 2001-2008 MUGPERU   Terms Of Use  Privacy Statement