|
1 /* |
|
2 * Copyright (c) 1999 - 2001 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "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". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 /*************************************************************************** |
|
20 ** File: nwx_logger.h |
|
21 ** Purpose: Used for logging (presently will be used for debug routines) |
|
22 ** (Windows NT & Windows CE will output in the debug windows) |
|
23 **************************************************************************/ |
|
24 #ifndef NWX_LOGGER_H |
|
25 #define NWX_LOGGER_H |
|
26 |
|
27 #include "nwx_defs.h" |
|
28 |
|
29 #ifdef __cplusplus |
|
30 extern "C" { |
|
31 #endif |
|
32 |
|
33 /* |
|
34 **--------------------------------------------------------------------------- |
|
35 ** Type Declarations |
|
36 **--------------------------------------------------------------------------- |
|
37 */ |
|
38 typedef enum { |
|
39 NW_LOG_OFF = 0, /* No debugging info */ |
|
40 NW_LOG_LEVEL1 = 1, /* Minimum amount of debugging info */ |
|
41 NW_LOG_LEVEL2 = 2, |
|
42 NW_LOG_LEVEL3 = 3, |
|
43 NW_LOG_LEVEL4 = 4, |
|
44 NW_LOG_LEVEL5 = 5 /* Maximum amount of debugging info */ |
|
45 } NW_LogLevel_t; |
|
46 |
|
47 /* |
|
48 **--------------------------------------------------------------------------- |
|
49 ** Global Function Declarations |
|
50 **--------------------------------------------------------------------------- |
|
51 */ |
|
52 |
|
53 // GAF: These 4 exported functions should be always in .DEF file |
|
54 |
|
55 /* create a new debugging log */ |
|
56 void NW_Debug_NewLogger(const char* name, const NW_LogLevel_t logLev); |
|
57 |
|
58 /* write formatted list of values to log */ |
|
59 void NW_Debug_Log(const NW_LogLevel_t level, const char* fmt, ...); |
|
60 |
|
61 /* set logging level (message level must be *less* than log level) */ |
|
62 void NW_Debug_SetLogLevel(const NW_LogLevel_t logLev); |
|
63 |
|
64 /* close the debugging log */ |
|
65 void NW_Debug_CloseLogger(); |
|
66 |
|
67 /* Uncomment following line if you want to produce logs in release mode */ |
|
68 |
|
69 //#define _ENABLE_LOGS |
|
70 |
|
71 #if (defined (_DEBUG)) || (defined(_ENABLE_LOGS)) |
|
72 |
|
73 /* log string */ |
|
74 void NW_Debug_LogString(const char *message); |
|
75 |
|
76 /* Macros for Debug Builds */ |
|
77 #define NW_LOG_NEWLOGGER(name, level) NW_Debug_NewLogger(name, level) |
|
78 #define NW_LOG_SETLOGLEVEL(level) NW_Debug_SetLogLevel(level) |
|
79 #define NW_LOG_CLOSELOGGER() NW_Debug_CloseLogger() |
|
80 |
|
81 #define NW_LOG0(level, fmt) \ |
|
82 NW_Debug_Log(level, fmt) |
|
83 #define NW_LOG1(level, fmt, arg1) \ |
|
84 NW_Debug_Log(level, fmt, arg1) |
|
85 #define NW_LOG2(level, fmt, arg1, arg2) \ |
|
86 NW_Debug_Log(level, fmt, arg1, arg2) |
|
87 #define NW_LOG3(level, fmt, arg1, arg2, arg3) \ |
|
88 NW_Debug_Log(level, fmt, arg1, arg2, arg3) |
|
89 #define NW_LOG4(level, fmt, arg1, arg2, arg3, arg4) \ |
|
90 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4) |
|
91 #define NW_LOG5(level, fmt, arg1, arg2, arg3, arg4, arg5) \ |
|
92 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5) |
|
93 #define NW_LOG6(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6) \ |
|
94 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6) |
|
95 #define NW_LOG7(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7) \ |
|
96 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7) |
|
97 #define NW_LOG8(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \ |
|
98 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) |
|
99 #define NW_LOG9(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) \ |
|
100 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) |
|
101 #define NW_LOG10(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) \ |
|
102 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) |
|
103 #define NW_LOG11(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) \ |
|
104 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) |
|
105 #define NW_LOG12(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) \ |
|
106 NW_Debug_Log(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) |
|
107 |
|
108 #else |
|
109 |
|
110 /* Macros for Release Builds */ |
|
111 #define NW_LOG_NEWLOGGER(name, level) ((void) 0) |
|
112 #define NW_LOG_SETLOGLEVEL(level) ((void) 0) |
|
113 #define NW_LOG_CLOSELOGGER() ((void) 0) |
|
114 |
|
115 #define NW_LOG0(level, fmt) ((void) 0) |
|
116 #define NW_LOG1(level, fmt, arg1) ((void) 0) |
|
117 #define NW_LOG2(level, fmt, arg1, arg2) ((void) 0) |
|
118 #define NW_LOG3(level, fmt, arg1, arg2, arg3) ((void) 0) |
|
119 #define NW_LOG4(level, fmt, arg1, arg2, arg3, arg4) ((void) 0) |
|
120 #define NW_LOG5(level, fmt, arg1, arg2, arg3, arg4, arg5) ((void) 0) |
|
121 #define NW_LOG6(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6) ((void) 0) |
|
122 #define NW_LOG7(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7) ((void) 0) |
|
123 #define NW_LOG8(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) ((void) 0) |
|
124 #define NW_LOG9(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) ((void) 0) |
|
125 #define NW_LOG10(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) ((void) 0) |
|
126 #define NW_LOG11(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11) ((void) 0) |
|
127 #define NW_LOG12(level, fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12) ((void) 0) |
|
128 |
|
129 #endif /* (defined (_DEBUG)) || (defined(_ENABLE_LOGS)) */ |
|
130 |
|
131 |
|
132 |
|
133 #ifdef __cplusplus |
|
134 } /* extern "C" */ |
|
135 #endif |
|
136 |
|
137 #endif /* NWX_LOGGER_H */ |