//////////////////////////////////////////////////////////////////////
//
//  LOGMAIL.PRG
//
//  Copyright:
//      Alaska Software, (c) 2000-2002. All rights reserved.         
//  
//  Contents:
//      Userdefined class LogWriter()
//   
//  Remarks:
//      This simple class is used to log transmission information while
//      sending or retrieving e-mails via SendMail() or ReceiveMail().
//   
//////////////////////////////////////////////////////////////////////

#include "Fileio.ch"

#define CRLF CHR(13)+CHR(10)

CLASS LogWriter
   VAR lIsError
   VAR aMessage
   VAR cLogFile

 EXPORTED:

   INLINE METHOD init( cLogFile )
      ::cLogFile := cLogFile
      ::aMessage := {}
      ::lIsError := .F.
   RETURN


   INLINE METHOD write( cMsg )
      AAdd( ::aMessage, cMsg )
   RETURN self


   INLINE METHOD logError( cMsg )
      ::lIsError := .T.
      ::write( cMsg )
   RETURN self


   INLINE METHOD isError
   RETURN ::lIsError


   INLINE METHOD writeLogFile
      LOCAL nHandle

      IF .NOT. FExists( ::cLogFile )
         nHandle := FCreate( ::cLogFile )
      ELSE
         nHandle := FOpen( ::cLogFile, FO_READWRITE + FO_DENYWRITE ) //31.07.2007 18:13 ak
         FSeek( nHandle, 0, FS_END )
      ENDIF
      FWrite( nHandle, "----------START: "+DtoC(DATE())+" - "+Time()+" ------------"+CRLF )  //31.07.2007 18:19 ak
      AEval( ::aMessage, {|cMsg| FWrite( nHandle, cMsg + CRLF ) } )
      FWrite( nHandle, "----------END----------"+CRLF )   //31.07.2007 18:20 ak
      FClose( nHandle )
   RETURN self

ENDCLASS

// EOF
