inc/muslogger.h
changeset 22 496ad160a278
parent 0 f0cf47e981f9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/muslogger.h	Fri Jun 11 13:36:18 2010 +0300
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 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:  ?Description
+*
+*/
+
+
+#ifndef MUSLOGGER_H
+#define MUSLOGGER_H
+
+// Disabled PC_lint warning for "Undefined preprocessor variable 'UNIT_TESTING'"
+/*lint -e553 */
+#if ( !_DEBUG || UNIT_TESTING ) // release or unit test build; no logs
+
+#define MUS_LOG_TDESC( aPrefix, aString )
+#define MUS_LOG_TDESC8( aPrefix, aString )
+#define MUS_LOG( aFmt )
+#define MUS_LOG1( aFmt, aVar1 )
+#define MUS_LOG2( aFmt, aVar1, aVar2 )
+#define MUS_LOG3( aFmt, aVar1, aVar2, aVar3 )
+
+#else // debug build; logs
+
+#include <e32debug.h>
+#include <flogger.h>
+
+_LIT( KMusLogDir, "mus" );           // MultimediaSharing logging directory.
+_LIT( KMusLogFile, "musdebug.txt" ); // MultimediaSharing log file name.
+
+// File logging can be disabled by commenting above definition. 
+#define MUS_FILE_LOGGING_ENABLED
+
+#if ( defined __WINSCW__ ) || ( defined __WINS__ )
+// No sense to have file logging enabled in wins
+#undef MUS_FILE_LOGGING_ENABLED
+#endif
+
+#ifdef MUS_FILE_LOGGING_ENABLED
+const TBool KMusFileLoggingEnabled = ETrue;
+#else
+const TBool KMusFileLoggingEnabled = EFalse;
+#endif
+
+#define MUS_LOG_TDESC( aPrefix, aString )\
+    {\
+    _LIT( KLogPrefix, aPrefix );\
+    HBufC* logString = HBufC::NewLC( KLogPrefix().Length()+\
+                                     aString.Length() );\
+    logString->Des().Append( KLogPrefix() );\
+    logString->Des().Append( aString );\
+    if ( KMusFileLoggingEnabled )\
+        {\
+        RFileLogger::Write( KMusLogDir, KMusLogFile,\
+                              EFileLoggingModeAppend,\
+                              *logString );\
+        }\
+    RDebug::Print( *logString );\
+    CleanupStack::PopAndDestroy( logString );\
+    }                                     
+
+#define MUS_LOG_TDESC8( aPrefix, aString )\
+    {\
+    _LIT8( KLogPrefix8, aPrefix );\
+    HBufC8* logString8 = HBufC8::NewLC( KLogPrefix8().Length()+\
+                                     aString.Length() );\
+    logString8->Des().Append( KLogPrefix8() );\
+    logString8->Des().Append( aString );\
+    if ( KMusFileLoggingEnabled )\
+        {\
+        RFileLogger::Write( KMusLogDir, KMusLogFile,\
+                              EFileLoggingModeAppend,\
+                              *logString8 );\
+        }\
+    RDebug::RawPrint( *logString8 );\
+    CleanupStack::PopAndDestroy( logString8 );\
+    }    
+
+#define MUS_LOG( aFmt )\
+    {\
+    _LIT( KLogMsg, aFmt );\
+    if ( KMusFileLoggingEnabled )\
+        {\
+        RFileLogger::WriteFormat( KMusLogDir, KMusLogFile,\
+                                  EFileLoggingModeAppend,\
+                                  KLogMsg() );\
+        }\
+    RDebug::Print( KLogMsg() );\
+    }
+
+#define MUS_LOG1( aFmt, aVar1 )\
+    {\
+    _LIT( KLogMsg, aFmt );\
+    if ( KMusFileLoggingEnabled )\
+        {\
+        RFileLogger::WriteFormat( KMusLogDir, KMusLogFile,\
+                                  EFileLoggingModeAppend,\
+                                  KLogMsg(), aVar1 );\
+        }\
+    RDebug::Print( KLogMsg(), aVar1 );\
+    }
+
+#define MUS_LOG2( aFmt, aVar1, aVar2 )\
+    {\
+    _LIT( KLogMsg, aFmt );\
+    if ( KMusFileLoggingEnabled )\
+        {\
+        RFileLogger::WriteFormat( KMusLogDir, KMusLogFile,\
+                              EFileLoggingModeAppend,\
+                              KLogMsg(), aVar1, aVar2 );\
+        }\
+    RDebug::Print( KLogMsg(), aVar1, aVar2 );\
+    }
+
+#define MUS_LOG3( aFmt, aVar1, aVar2, aVar3 )\
+    {\
+    _LIT( KLogMsg, aFmt );\
+    if ( KMusFileLoggingEnabled )\
+        {\
+        RFileLogger::WriteFormat( KMusLogDir, KMusLogFile,\
+                              EFileLoggingModeAppend,\
+                              KLogMsg(), aVar1, aVar2, aVar3 );\
+        }\
+    RDebug::Print( KLogMsg(), aVar1, aVar2, aVar3 );\
+    }
+ 
+#endif
+
+#define LEAVE_IF_NOT( x, y ) \
+    if( x != y && x != KErrNone )\
+        {\
+        MUS_LOG1( "mus: [      ]     Leaving with code %d", x )\
+        User::Leave( x );\
+        }
+
+#endif // MUSLOGGER_H
+
+// End of File