--- /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