upnpmediaserver/contentdirectoryservice/inc/upnpcontentdirectorydbdebug.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:52:00 +0200
changeset 0 7f85d04be362
permissions -rw-r--r--
Revision: 200947 Kit: 200951

/** @file
* Copyright (c) 2005-2006 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:  Database for MediaServer
*
*/



#ifndef C_CUPNPCONTENTDIRECTORYDB_DEBUG_H
#define C_CUPNPCONTENTDIRECTORYDB_DEBUG_H

// Note that _DEBUG is automatically defined for debug builds

// To enable file logging: please comment following #ifdef line and 
// uncomment #ifdef TRUE
#ifdef _DEBUG
//#ifndef TRUE // to disable logging & debug in all builds
//#ifdef TRUE // to enable logging & debug in all builds

/****************************** LOGGING ON ***********************************/
// INCLUDES
#include <flogger.h>

// CONSTANTS
//_LIT(___KLogDir___, "ContentDirectoryDb");
_LIT(___KLogDir___, "ContentDirectoryDb");
_LIT(___KLogFile___, "ContentDirectoryDb.log");
_LIT(___KLogOpeningLine___, "INFO####ContentDirectoryDb.log file opened.");
_LIT(___KInfoFormatString___,"INFO#%S#%S#%d#%S");
_LIT(______KSqlComment______,"ERROR#%S#%S#%d#%S");
_LIT(KSqlComment,"SQL Command:");

// MACROS
/** Replaces the log file
*/
#define __LOG_OPEN()            RFileLogger::Write(___KLogDir___, ___KLogFile___, EFileLoggingModeOverwrite, ___KLogOpeningLine___)

/** For internal use (long comments) - do not use in the code 
*/
#define __LOG_STRING(string)            RFileLogger::Write(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, string);

/** For internal use (long comments) - do not use in the code 
*/
#define __LOG_ALL(longstring) \
    { \
    TInt ___iLogZ___ = 0; \
    TInt ___amountLogZ___ = 100; \
    while(___iLogZ___<longstring.Length()) \
        { \
        if(( longstring.Length()-___iLogZ___) < 100) \
            ___amountLogZ___ = longstring.Length()-___iLogZ___; \
        __LOG_STRING(longstring.Mid(___iLogZ___,___amountLogZ___)); \
        ___iLogZ___+=100; \
        } \
    } 
    
/** Logs error - this is intended to use in the code
* @param in_function: quoted string - name of function in which the called_function gets called, max 30 chars
* @param called_function:  quoted string - just called function, ussually it returns error_code, max 30 chars
* @param error_code: integer - error code returned by just called function
* @param comment:  quoted string - your comment, if longer than 50 chars will be expanded to the sequent line(s)
*/
#define __LOG(in_function,called_function,error_code,comment) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    _LIT(___KComment___,comment);\
    TInt ___comment_max_length___ = 50;\
    if(error_code<0)\
    {\
        TPtrC ___comment_part___(___KComment___().Left(___comment_max_length___));\
        RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ______KSqlComment______, &___KInFunction___, &___KCalledFunction___, error_code, &___comment_part___);\
    }\
    else\
    {\
        TPtrC ___comment_part___(___KComment___().Left(___comment_max_length___));\
        RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ___KInfoFormatString___, &___KInFunction___, &___KCalledFunction___, error_code, &___comment_part___);\
    }\
    if(___KComment___().Length()>___comment_max_length___)\
    {\
        TPtrC ___continuation___((___KComment___().Mid(___comment_max_length___)));\
        __LOG_ALL(___continuation___);\
    }\
    }

#define __LOG_INFO(in_function,called_function,error_code,comment) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    _LIT(___KComment___,comment);\
    TInt ___comment_max_length___ = 50;\
    TPtrC ___comment_part___((___KComment___().Left(___comment_max_length___)));\
    RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ___KInfoFormatString___, &___KInFunction___, &___KCalledFunction___, error_code, &___comment_part___);\
    if(___KComment___().Length()>___comment_max_length___)\
    {\
        TPtrC ___continuation___((___KComment___().Mid(___comment_max_length___)));\
        __LOG_ALL(___continuation___);\
    }\
    }

#define __LOG_ERROR(in_function,called_function,error_code,comment) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    _LIT(___KComment___,comment);\
    TInt ___comment_max_length___ = 50;\
    TPtrC ___comment_part___(___KComment___().Left(___comment_max_length___));\
    RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ______KSqlComment______, &___KInFunction___, &___KCalledFunction___, error_code, &___comment_part___);\
    if(___KComment___().Length()>___comment_max_length___)\
    {\
        TPtrC ___continuation___((___KComment___().Mid(___comment_max_length___)));\
        __LOG_ALL(___continuation___);\
    }\
    }

// file versions

#define __LOG_OPEN_FILE(file, string)           RFileLogger::Write(___KLogDir___, file, EFileLoggingModeOverwrite, string)

#define __LOG_TO_FILE(file,in_function,called_function,error_code,comment) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    _LIT(___KComment___,comment);\
    TInt ___comment_max_length___ = 50;\
    if(error_code<0)\
    {\
        RFileLogger::WriteFormat(___KLogDir___, file, EFileLoggingModeAppend, ______KSqlComment______, &___KInFunction___, &___KCalledFunction___, error_code, &(___KComment___().Left(___comment_max_length___)));\
    }\
    else\
    {\
        RFileLogger::WriteFormat(___KLogDir___, file, EFileLoggingModeAppend, ___KInfoFormatString___, &___KInFunction___, &___KCalledFunction___, error_code, &(___KComment___().Left(___comment_max_length___)));\
    }\
    if(___KComment___().Length()>___comment_max_length___)\
    {\
        TPtrC ___continuation___((___KComment___().Mid(___comment_max_length___)));\
        __LOG_ALL(___continuation___);\
    }\
    }

#define __LOG_INFO_TO_FILE(file,in_function,called_function,error_code,comment) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    _LIT(___KComment___,comment);\
    TInt ___comment_max_length___ = 50;\
    RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ___KInfoFormatString___, &___KInFunction___, &___KCalledFunction___, error_code, &(___KComment___().Left(___comment_max_length___)));\
    if(___KComment___().Length()>__comment_max_length__)\
    {\
        TPtrC ___continuation___((___KComment___().Mid(___comment_max_length___)));\
        __LOG_ALL(___continuation___);\
    }\
    }

#define __LOG_ERROR_TO_FILE(file,in_function,called_function,error_code,comment) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    _LIT(___KComment___,comment);\
    TInt ___comment_max_length___ = 50;\
    RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ______KSqlComment______, &___KInFunction___, &___KCalledFunction___, error_code, &(___KComment___().Left(___comment_max_length___)));\
    if(___KComment___().Length()>___comment_max_length___)\
    {\
        TPtrC ___continuation___((___KComment___().Mid(___comment_max_length___)));\
        __LOG_ALL(___continuation___);\
    }\
    }


// module specific defines 

/** Logs sql Command
*/
#define __LOG_SQL_COMMAND(in_function,called_function,error_code,command) \
    {\
    _LIT(___KInFunction___,in_function);\
    _LIT(___KCalledFunction___,called_function);\
    if(error_code < 0 )\
    {\
        RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ______KSqlComment______, &___KInFunction___, &___KCalledFunction___, error_code, &KSqlComment);\
        __LOG_ALL(command);\
    }\
    else\
    {\
        RFileLogger::WriteFormat(___KLogDir___, ___KLogFile___, EFileLoggingModeAppend, ___KInfoFormatString___, &___KInFunction___, &___KCalledFunction___, error_code, &KSqlComment);\
        __LOG_ALL(command);\
    }\
    }


#else
/****************************** LOGGING OFF **********************************/

#define __LOG_OPEN()
#define __LOG_STRING(string)
#define __LOG_ALL(longstring)
#define __LOG(in_function,called_function,error_code,comment)
#define __LOG_INFO(in_function,called_function,error_code,comment)
#define __LOG_ERROR(in_function,called_function,error_code,comment)
#define __LOG_OPEN_FILE(file, string)
#define __LOG_TO_FILE(file,in_function,called_function,error_code,comment)
#define __LOG_INFO_TO_FILE(file,in_function,called_function,error_code,comment)
#define __LOG_ERROR_TO_FILE(file,in_function,called_function,error_code,comment)

// module specific defines defines 
/** Logs sql Command
*/
#define __LOG_SQL_COMMAND(in_function,called_function,error_code,command)

#endif // _DEBUG

#endif // C_CUPNPCONTENTDIRECTORYDB_DEBUG_H

// End of File