2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
20 #ifndef __TFLOGGER_H__
21 #define __TFLOGGER_H__
27 #define TF_LOGGING_METHOD 0 // No logging in UREL builds
32 #define TF_LOGGING_METHOD 3 // 0 = No logging,
39 #if TF_LOGGING_METHOD > 0
40 #define TF_LOGGING_ENABLED // This is for backward compatibility
43 // FUNCTION PROTOTYPES
44 #if TF_LOGGING_METHOD == 1 // Flogger
47 _LIT(KTfLogFolder,"TF");
48 _LIT(KTfLogFile,"TFLOG.TXT");
50 #elif TF_LOGGING_METHOD == 2 // RDebug
54 #elif TF_LOGGING_METHOD == 3 // CommsDebug
56 #include <comms-infras/commsdebugutility.h>
62 -----------------------------------------------------------------------------
66 USE THESE MACROS IN YOUR CODE !
68 -----------------------------------------------------------------------------
71 #if TF_LOGGING_METHOD == 1 // Flogger
73 #define TFLOGTEXT(AAA) RFileLogger::Write(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend, AAA)
74 #define TFLOGSTRING(AAA) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RFileLogger::Write(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend,tempLogDes()); } while (0)
75 #define TFLOGSTRING2(AAA,BBB) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempLogDes()),BBB); } while (0)
76 #define TFLOGSTRING3(AAA,BBB,CCC) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempLogDes()),BBB,CCC); } while (0)
77 #define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend,TRefByValue<const TDesC>(tempLogDes()),BBB,CCC,DDD); } while (0)
80 #elif TF_LOGGING_METHOD == 2 // RDebug
82 #define TFLOGTEXT(AAA) RDebug::Print(AAA)
83 #define TFLOGSTRING(AAA) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes); } while (0)
84 #define TFLOGSTRING2(AAA,BBB) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB); } while (0)
85 #define TFLOGSTRING3(AAA,BBB,CCC) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB, CCC); } while (0)
86 #define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB, CCC, DDD); } while (0)
89 #elif TF_LOGGING_METHOD == 3 // CommsDebug
90 _LIT8(KTSYSubSystem, "tsy");
92 _LIT8(KTSYCompnt, "sattsy");
94 _LIT8(KTSYCompnt, "ctsy");
97 #define TFLOGTEXT(AAA) __FLOG_STATIC0(KTSYSubSystem,KTrpCompnt,(AAA))
98 #define TFLOGSTRING(AAA) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); __FLOG_STATIC0(KTSYSubSystem,KTSYCompnt, tempLogDes); } while (0)
99 #define TFLOGSTRING2(AAA,BBB) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); __FLOG_STATIC1(KTSYSubSystem,KTSYCompnt, tempLogDes, BBB); } while (0)
100 #define TFLOGSTRING3(AAA,BBB,CCC) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); __FLOG_STATIC2(KTSYSubSystem,KTSYCompnt, tempLogDes, BBB, CCC); } while (0)
101 #define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); __FLOG_STATIC3(KTSYSubSystem,KTSYCompnt, tempLogDes, BBB, CCC, DDD); } while (0)
103 #else // TF_LOGGING_METHOD == 0 or invalid
105 #define TFLOGTEXT(AAA) // Example: TFLOGTEXT(own_desc);
106 #define TFLOGSTRING(AAA) // Example: TFLOGSTRING("Test");
107 #define TFLOGSTRING2(AAA,BBB) // Example: TFLOGSTRING("Test %i", aValue);
108 #define TFLOGSTRING3(AAA,BBB,CCC) // Example: TFLOGSTRING("Test %i %i", aValue1, aValue2);
109 #define TFLOGSTRING4(AAA,BBB,CCC,DDD) // Example: TFLOGSTRING("Test %i %i %i", aValue1, aValue2, aValue3);
111 #endif // TF_LOGGING_METHOD
113 #if TF_LOGGING_METHOD == 1 || TF_LOGGING_METHOD == 2
115 // Note, #x and __FILE__ must be stored to char string first, making them 16bit
116 // strings with _LIT will not work in all compilers.
118 #define TF_ASSERT(x) /*lint --e{717} */ do { if (!(x)) { const TUint8 tempX8[] = #x; \
119 TBuf<sizeof(tempX8)> tempX; \
120 tempX.Copy(TPtrC8(tempX8)); const TUint8 tempF8[] = __FILE__; TBuf<sizeof(tempF8)> tempF;\
121 tempF.Copy(TPtrC8(tempF8)); \
122 TFLOGSTRING4("TSY: ASSERT FAILED: %S, file %S, line %d", &tempX, &tempF, __LINE__ ); } } while(0)
124 #define TF_ASSERT_NOT_REACHED() /*lint --e{717} */ do { const TUint8 tempF8[] = __FILE__;\
125 TBuf<sizeof(tempF8)> tempF; tempF.Copy(TPtrC8(tempF8));\
126 TFLOGSTRING3("TSY: ASSERT FAILED: unreachable code, file %S, line %d", &tempF, __LINE__ ); } while (0)
128 #else // TF_LOGGING_METHOD == 0 or invalid
131 #define TF_ASSERT_NOT_REACHED()
133 #endif // TF_LOGGING_METHOD == 1 || TF_LOGGING_METHOD == 2
136 #endif // __TFLOGGER_H__