diff -r 000000000000 -r af10295192d8 networkingtestandutils/networkingintegrationtest/IntegrationTestUtils/LogFile.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkingtestandutils/networkingintegrationtest/IntegrationTestUtils/LogFile.cpp Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,134 @@ +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file LogFile.cpp +*/ + +// EPOC includes +#include +#include + +// Test system includes +#include "../inc/Log.h" + +EXPORT_C void CFileLogger::CreateLog(const TDesC& aDir, const TDesC& aName) +/** +Create a log file. + +@param aDir Directory in which to create the log file. +@param aName Log file name. +@note If the directory does not exsist then logging is disabled. +*/ + { + // only log if adir exists + TUint aAttValue; + if ( iFs.Att(aDir, aAttValue) ==KErrNotFound) + { + iEnabled = false; + return; + } + else + iEnabled = true; + + // make the correct file name + TFileName LogFile; + LogFile.Format( _L("\\logs\\testresults\\%S"), &aName ); + + // If the file does not exist - create it + TInt returnCode=iLogfile.Replace(iFs,LogFile,EFileWrite | EFileStreamText); + + // check if open fails + if (returnCode==KErrNone ) + { + //file has opened ok + // add the start to the htm + iLogfile.Write( _L8("
\n") );
+		}
+	else
+		iEnabled = false;
+	};
+
+EXPORT_C void CFileLogger::CloseLog( void )
+/**
+Close log file.
+*/
+	{
+
+	// if logging enabled flush buffers
+	if ( iEnabled )
+		{
+		iLogfile.Flush();
+		iLogfile.Close();
+		}
+
+	// disconnect from the file server
+	iFs.Close();
+	}
+
+EXPORT_C void CFileLogger::WriteFormat( TRefByValue format, ...  )
+/**
+Write formatted output to the log file. 
+
+@param format "printf" format string
+*/
+	{
+
+	if ( !iEnabled ) return ;
+
+    VA_LIST aList;
+	VA_START( aList, format );
+
+	TIntegrationTestLog16Overflow iOverflow16;
+
+	// decode formated data for display on console
+	TBuf  LineBuf;
+	TBuf8  LineBuf8;
+
+	// get the current time and date
+	TTime now;
+	now.HomeTime();
+	TDateTime dateTime = now.DateTime() ;
+
+	// add the current time and date 
+	LineBuf.AppendFormat(_L("%02d/%02d/%04d\t%02d:%02d:%02d:%03d\t"),
+		dateTime.Day()+1,
+		dateTime.Month()+1,
+		dateTime.Year(),
+		dateTime.Hour(),
+		dateTime.Minute(),
+		dateTime.Second(),
+		(dateTime.MicroSecond()/1000) ); 
+
+	// followed by the formatted data
+	LineBuf.AppendFormatList( format, aList,  &iOverflow16 );
+	VA_END( aList ); 
+
+	// convert from unicode to 8 bit
+	for (TInt i = 0; i< LineBuf.Length() ;i++)
+		LineBuf8.Append( (char)LineBuf[i] );
+
+
+	// write to log file
+	iLogfile.Write( LineBuf8 );
+	}
+
+EXPORT_C TInt CFileLogger::Connect( void )
+/**
+Connect to the file server.
+*/
+	{
+	return iFs.Connect();
+	}