diff -r 000000000000 -r dd21522fd290 browserutilities/downloadmgr/DownloadMgrUiLib/Inc/UiLibLogger.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Inc/UiLibLogger.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,185 @@ +/* +* Copyright (c) 2002-2004 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: Logging +* +*/ + + + +#ifndef UILIBLOGGER_H +#define UILIBLOGGER_H + +// INCLUDES + +#include +#include + +#ifdef _DEBUG + +#include +#include + +/// DownloadMgrUiLib logging directory. +_LIT( KDownloadMgrUiLibLogDir, "UiLib" ); +/// DownloadMgrUiLib log file name. +_LIT( KDownloadMgrUiLibLogFile, "UiLibLog.txt" ); +/// Format string: enter function. +_LIT( KDownloadMgrUiLibLogEnterFn, "-> %S" ); +/// Format string: leave function. +_LIT( KDownloadMgrUiLibLogLeaveFn, "<- %S" ); +/// Format string: time. +_LIT( KDownloadMgrUiLibLogTimeFormatString, "%H:%T:%S:%*C2" ); +/// Format string: timestamp. +_LIT( KDownloadMgrUiLibLogTimeStampFormatString, "%S %S" ); +_LIT( KDownloadMgrUiLibLogBanner, "Download Manager UI Lib started" ); +_LIT( KDownloadMgrUiLibLogDependency, "C:\\Logs\\" ); +_LIT( KDownloadMgrUiLibLogDoubleBackSlash, "\\" ); + +/// Create the log directory. +#define LOG_CREATE \ + { \ + TFileName path( KDownloadMgrUiLibLogDependency ); \ + path.Append( KDownloadMgrUiLibLogDir ); \ + path.Append( KDownloadMgrUiLibLogDoubleBackSlash ); \ + RFs& fs = CEikonEnv::Static()->FsSession(); \ + fs.MkDirAll( path ); \ + RFileLogger::WriteFormat( KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + KDownloadMgrUiLibLogBanner ); \ + } + +/// Write log: enter function. +#define CLOG_ENTERFN( a ) \ + { \ + _LIT( temp, a ); \ + RFileLogger::WriteFormat \ + ( \ + KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + KDownloadMgrUiLibLogEnterFn, \ + &temp \ + ); \ + } + +/// Write log: leave function. +#define CLOG_LEAVEFN( a ) \ + { \ + _LIT( temp, a ); \ + RFileLogger::WriteFormat \ + ( \ + KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + KDownloadMgrUiLibLogLeaveFn, \ + &temp \ + ); \ + } + +/// Write log: string 'a'. +#define CLOG_WRITE( a ) \ + { \ + _LIT( temp, a ); \ + RFileLogger::Write \ + ( \ + KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + temp \ + ); \ + } + +/// Write log: formatted. +#define CLOG_WRITE_FORMAT( a, b ) \ + { \ + _LIT( temp, a ); \ + RFileLogger::WriteFormat \ + ( \ + KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + temp, \ + b \ + ); \ + } + +/// Write log: timestamp. +#define CLOG_WRITE_TIMESTAMP( a ) \ + { \ + _LIT( temp, a ); \ + TTime time; \ + time.HomeTime(); \ + TBuf<32> timeBuf; \ + TRAPD( err, time.FormatL( timeBuf, KDownloadMgrUiLibLogTimeFormatString ) ); \ + if ( !err ) \ + { \ + RFileLogger::WriteFormat \ + ( \ + KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + KDownloadMgrUiLibLogTimeStampFormatString, \ + &temp, \ + &timeBuf \ + ); \ + } \ + } + +/// Write log: download event. +#define CLOG_WRITE_EVENT( text, downloadPtr, event ) \ + { \ + _LIT( temp, text ); \ + TBuf<64> formatstr; \ + formatstr.Copy( temp().Left(10) ); \ + formatstr.Append( _L(" 0x%x") ); \ + formatstr.Append( _L(" %d %d") ); \ + RFileLogger::WriteFormat \ + ( \ + KDownloadMgrUiLibLogDir, \ + KDownloadMgrUiLibLogFile, \ + EFileLoggingModeAppend, \ + formatstr, \ + downloadPtr, \ + event.iDownloadState, \ + event.iProgressState \ + ); \ + } + +/// Guard "log-only" argument name with this (expands to argument). +#define CLOG_ONLY( argName ) argName + +#else /* not defined _DEBUG */ + +/// Empty definition (disable log). +#define LOG_CREATE +/// Empty definition (disable log). +#define CLOG_ENTERFN( a ) +/// Empty definition (disable log). +#define CLOG_LEAVEFN( a ) +/// Empty definition (disable log). +#define CLOG_WRITE( a ) +/// Empty definition (disable log). +#define CLOG_WRITE_FORMAT( a, b ) +/// Empty definition (disable log). +#define CLOG_WRITE_TIMESTAMP( a ) +/// Empty definition (disable log). +#define CLOG_WRITE_EVENT( text, downloadPtr, event ) +/// Guard "log-only" argument name with this (expands to nothing). +#define CLOG_ONLY( argName ) + +#endif /* def _DEBUG */ + + +#endif /* def UILIBLOGGER_H */