logsui/group/LogsDebug.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/group/LogsDebug.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,131 @@
+/*
+* 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 "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:  This file defines logging macros for Logs application.
+*
+*/
+
+
+#ifndef LogsDEBUG_H
+#define LogsDEBUG_H
+
+#include <e32std.h>
+#include <e32svr.h>
+
+
+// uncomment to enable logging to file. 
+// #define LOGS_ENABLE_FILELOGGER 
+    
+#ifdef _DEBUG
+    
+    /// Macro for defining debug-only literal strings
+    #define LOGS_DEBUG_STRING(s) _L(s)
+    
+    #ifdef LOGS_ENABLE_FILELOGGER 
+        // Prints debug to file
+
+        #include <e32std.h>
+
+        #define LOGS_DEBUG_PRINT   FPrint
+        
+        #include <flogger.h>
+        
+        namespace {
+        
+        inline void FPrint( const TRefByValue<const TDesC> aFmt, ... )
+            {
+            _LIT(KLogFile,"Logs.txt");
+            _LIT(KLogDir,"Logs");
+            VA_LIST list;
+            VA_START( list, aFmt );
+            RFileLogger::WriteFormat( KLogDir, KLogFile, EFileLoggingModeAppend, aFmt, list );
+            }
+
+        } // namespace
+    
+    #else // LOGS_ENABLE_FILELOGGER
+    
+        // Prints to debugger output
+        #define LOGS_DEBUG_PRINT RDebug::Print
+        
+    #endif // LOGS_ENABLE_FILELOGGER
+
+ 
+// ===========================================================================
+#else // _DEBUG // No loggings
+// ===========================================================================
+
+    /// Dummy struct for checking that all LOGS_DEBUG_PRINT's define string
+    /// literals using space-saving LOGS_DEBUG_STRING.
+    struct TLogsEmptyDebugString { };
+
+    /// Macro for defining debug-only literal strings (empty release version)
+    #define LOGS_DEBUG_STRING(s) TLogsEmptyDebugString()
+
+    /// Empty debug print function for release builds.
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2,class T3>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2,T3)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2,class T3,class T4>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2,T3,T4)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2,class T3,class T4,class T5>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2,T3,T4,T5)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2,class T3,class T4,class T5,class T6>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2,T3,T4,T5,T6)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2,class T3,class T4,class T5,class T6,class T7>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2,T3,T4,T5,T6,T7)
+        {
+        }
+
+    /// Empty debug print function for release builds.
+    template<class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
+    inline void LOGS_DEBUG_PRINT(TLogsEmptyDebugString,T1,T2,T3,T4,T5,T6,T7,T8)
+        {
+        }
+
+#endif // _DEBUG
+
+#endif // LogsDEBUG_H
+// End of File