browserui/browser/BrowserAppSrc/Logger.cpp
author Kiiskinen Klaus (Nokia-D-MSW/Tampere) <klaus.kiiskinen@nokia.com>
Mon, 30 Mar 2009 12:49:49 +0300
changeset 0 84ad3b177aa3
permissions -rw-r--r--
Revision: 200911 Kit: 200912

/*
* Copyright (c) 2002 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:  Implemented logger functionality of the module
*
*/


#if defined( I__BROWSER_LOG_ENABLED ) 

// INCLUDES

#include "Logger.h"

// CONSTANTS

// the indentation value used in every function entry and exit points
// use value 0 to switch indentation off
const TInt KBrowserIndentValue = 0;

// the left x character of this string is used to indent
// function entry and exit points. DO NOT cut is smaller!
// it has to be synched with the call stack level and KBrowserIndentValue:
// .Length() / KBrowserIndentValue >= max size of callstack
_LIT( KBrowserLoggerIndentString,
"                                                                      " );
_LIT( KDebugLogEnterFn,         "Browser: %S-> %S" );
_LIT( KDebugLogLeaveFn,         "Browser: %S<- %S" );

// ---------------------------------------------------------------------------

// initialize static member variable
#if defined ( I__BROWSER_LOG_INDENT )
TInt CBrowserLogger::iIndent( 0 );
#endif

// ---------------------------------------------------------------------------

CBrowserLogger::CBrowserLogger( const TDesC& aFunc )
        : iFunc( aFunc )
#if ! defined ( I__BROWSER_LOG_INDENT )
        , iIndent( 0 )
#endif
    {
    TPtrC a = KBrowserLoggerIndentString().Left( iIndent );
    iIndent += KBrowserIndentValue;
    RFileLogger::WriteFormat( KDebugLogDir, KDebugLogFile,
        EFileLoggingModeAppend, KDebugLogEnterFn, &a, &iFunc );
    }

// ---------------------------------------------------------------------------

CBrowserLogger::~CBrowserLogger()
    {
    iIndent -= KBrowserIndentValue;
    TPtrC a = KBrowserLoggerIndentString().Left( iIndent );
    RFileLogger::WriteFormat( KDebugLogDir, KDebugLogFile,
        EFileLoggingModeAppend, KDebugLogLeaveFn, &a, &iFunc );
    }

// ---------------------------------------------------------------------------

void CBrowserLogger::Write( TRefByValue<const TDesC16> aFmt, ... )
    {
    VA_LIST list;
    VA_START( list, aFmt );
    RFileLogger::WriteFormat( KDebugLogDir, KDebugLogFile, 
        EFileLoggingModeAppend, aFmt, list );
    VA_END( list );
    }

// ---------------------------------------------------------------------------

void CBrowserLogger::Write( TRefByValue<const TDesC16> aFmt, VA_LIST& aList )
    {
    RFileLogger::WriteFormat( KDebugLogDir, KDebugLogFile,
        EFileLoggingModeAppend, aFmt, aList );
    }

// ---------------------------------------------------------------------------

void CBrowserLogger::Write(TRefByValue<const TDesC8> aFmt, ... )
    {
    VA_LIST list;
    VA_START( list, aFmt );
    RFileLogger::WriteFormat( KDebugLogDir, KDebugLogFile,
        EFileLoggingModeAppend, aFmt, list );
    VA_END( list );
    }

// ---------------------------------------------------------------------------

void CBrowserLogger::Write( TRefByValue<const TDesC8> aFmt, VA_LIST& aList )
    {
    RFileLogger::WriteFormat( KDebugLogDir, KDebugLogFile,
        EFileLoggingModeAppend, aFmt, aList );
    }
    
    
// Code segment for displaying an info note dialog box.  Can be used later as a debug aid.

    /*
    TInt    width, height;
    HBufC* header;
    TBuf<100> message; 

    message.Format(_L("width: %d ; height: %d"), width, height );

    header = StringLoader::LoadLC( R_WML_SECURITY_VIEW_TITLE );    

    CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL( message );

    dlg->PrepareLC( R_BROWSER_SECURITY_INFO );
    CAknPopupHeadingPane* hPane = dlg->QueryHeading();
    if ( hPane )
    {
    hPane->SetTextL( *header );
    }
    dlg->RunLD();
    CleanupStack::PopAndDestroy( 1 ); // header
    */


#endif // I__BROWSER_LOG_ENABLED

// End of file