diff -r d39add9822e2 -r 5bfc169077b2 webengine/webkitutils/stmgesturefw/src/filelogger.cpp --- a/webengine/webkitutils/stmgesturefw/src/filelogger.cpp Tue Feb 02 00:56:45 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: Gesture helper implementation -* -*/ -#include "filelogger.h" - -#include -#include - -_LIT(KLogFolder, "logs\\"); -_LIT(KLogFileExt, ".log"); -_LIT8(KLineEnd, "\r\n"); - -const TInt KTimeRecordSize = 25; - -_LIT8(KTimeFormat,"%04d-%02d-%02d %02d:%02d:%02d.%03d "); -_LIT8(KLogStart, "--== New %S log ==--\r\n"); - -CFileLogger::CFileLogger() -{ -} - -TBool CFileLogger::Construct() -{ - TInt err = iFs.Connect(); - if (!err) - { - TFileName logFileName; - err = !GetLogFileNameWithoutExt(logFileName); - if(!err) - { - logFileName.Append(KLogFileExt); - err = iFile.Create(iFs, logFileName, EFileShareAny | EFileWrite); - if(!err) - { - TInt pos(0); - iFile.Seek(ESeekEnd, pos); - TBuf8 appName; - appName.Copy(BaflUtils::ExtractAppNameFromFullName(RThread().FullName())); - iLogBuffer.AppendFormat(KLogStart, &appName); - err = iFile.Write(iLogBuffer); - } - } - } - return (!err); -} - -CFileLogger* CFileLogger::Logger() -{ - CFileLogger* logger = (CFileLogger*)Dll::Tls(); - if (!logger) - { - logger = new CFileLogger; - if (logger) - { - if (logger->Construct()) - { - Dll::SetTls(logger); - } - else - { - delete logger; - logger = NULL; - } - } - } - return logger; -} - -void CFileLogger::Close() -{ - delete (CFileLogger*)Dll::Tls(); - Dll::FreeTls(); -} - -CFileLogger::~CFileLogger() -{ - iFile.Close(); - iFs.Close(); -} - -TBool CFileLogger::GetLogFileNameWithoutExt(TDes& aFileName) -{ - TFileName path = PathInfo::MemoryCardRootPath() ; - path.Append(PathInfo::OthersPath()) ; // Put the log in the "Others" directory - aFileName.Append(path); - aFileName.Append(KLogFolder); - TBool res = BaflUtils::FolderExists(iFs, aFileName); - if (!res) - { - aFileName.Zero(); - aFileName.Append(path) ; // put it then directly to Others folder - res = ETrue ; - } - TPtrC fileName(BaflUtils::ExtractAppNameFromFullName(RThread().FullName())); - aFileName.Append(fileName); - TTime time; - time.HomeTime(); - TDateTime dateTime; - dateTime = time.DateTime(); - // add timestamp to the name (then one has to clear them manually) - aFileName.AppendNum(dateTime.Month()+1) ; - aFileName.AppendNum(dateTime.Day()+1) ; - aFileName.AppendNum(dateTime.Hour()) ; - aFileName.AppendNum(dateTime.Minute()) ; - aFileName.AppendNum(dateTime.Second()) ; - return res; -} - -void CFileLogger::Write(const TDesC8& aText) -{ - CFileLogger* logger = Logger(); - if(logger) - { - logger->iLogBuffer.Copy(aText); - logger->DoWrite(); - } -} - -void CFileLogger::Write(const TDesC16& aText) -{ - CFileLogger* logger = Logger(); - if(logger) - { - logger->iLogBuffer.Copy(aText); - logger->DoWrite(); - } -} - -void CFileLogger::Write(TRefByValue aFmt,...) -{ - CFileLogger* logger = Logger(); - if (logger) - { - VA_LIST list; - VA_START(list, aFmt); - logger->iLogBuffer.FormatList(aFmt, list); - logger->DoWrite(); - VA_END(list); - } -} - -void CFileLogger::DoWrite() -{ - if(iFile.SubSessionHandle()) - { - TTime time; - time.HomeTime(); - TDateTime dateTime; - dateTime = time.DateTime(); - TBuf8 timeRecord; - timeRecord.Format(KTimeFormat, dateTime.Year(), dateTime.Month()+1, dateTime.Day()+1, - dateTime.Hour(), dateTime.Minute(), dateTime.Second(), - dateTime.MicroSecond()/1000); - iLogBuffer.Insert(0, timeRecord); - iLogBuffer.Append(KLineEnd); - iFile.Write(iLogBuffer); - } -} -void CFileLogger::DoFlush() -{ - if(iFile.SubSessionHandle()) - { - iFile.Flush(); - } - -} -void CFileLogger::Flush() -{ - CFileLogger* logger = Logger(); - if (logger) - { - logger->DoFlush() ; - } -}