/src/FreeRDP/winpr/include/winpr/wlog.h
Line | Count | Source (jump to first uncovered line) |
1 | | /** |
2 | | * WinPR: Windows Portable Runtime |
3 | | * WinPR Logger |
4 | | * |
5 | | * Copyright 2013 Marc-Andre Moreau <marcandre.moreau@gmail.com> |
6 | | * Copyright 2015 Thincast Technologies GmbH |
7 | | * Copyright 2015 Bernhard Miklautz <bernhard.miklautz@thincast.com> |
8 | | * |
9 | | * |
10 | | * Licensed under the Apache License, Version 2.0 (the "License"); |
11 | | * you may not use this file except in compliance with the License. |
12 | | * You may obtain a copy of the License at |
13 | | * |
14 | | * http://www.apache.org/licenses/LICENSE-2.0 |
15 | | * |
16 | | * Unless required by applicable law or agreed to in writing, software |
17 | | * distributed under the License is distributed on an "AS IS" BASIS, |
18 | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
19 | | * See the License for the specific language governing permissions and |
20 | | * limitations under the License. |
21 | | */ |
22 | | |
23 | | #ifndef WINPR_LOG_H |
24 | | #define WINPR_LOG_H |
25 | | |
26 | | #ifdef __cplusplus |
27 | | extern "C" |
28 | | { |
29 | | #endif |
30 | | |
31 | | #include <stdarg.h> |
32 | | |
33 | | #include <winpr/wtypes.h> |
34 | | #include <winpr/winpr.h> |
35 | | #include <winpr/synch.h> |
36 | | #include <winpr/thread.h> |
37 | | |
38 | | /** |
39 | | * Log Levels |
40 | | */ |
41 | 0 | #define WLOG_TRACE 0 |
42 | 0 | #define WLOG_DEBUG 1 |
43 | 1 | #define WLOG_INFO 2 |
44 | 49 | #define WLOG_WARN 3 |
45 | 969 | #define WLOG_ERROR 4 |
46 | 0 | #define WLOG_FATAL 5 |
47 | 2.03k | #define WLOG_OFF 6 |
48 | 1.02k | #define WLOG_LEVEL_INHERIT 0xFFFF |
49 | | |
50 | | /** |
51 | | * Log Message |
52 | | */ |
53 | 2.03k | #define WLOG_MESSAGE_TEXT 0 |
54 | 0 | #define WLOG_MESSAGE_DATA 1 |
55 | 0 | #define WLOG_MESSAGE_IMAGE 2 |
56 | 0 | #define WLOG_MESSAGE_PACKET 3 |
57 | | |
58 | | /** |
59 | | * Log Appenders |
60 | | */ |
61 | 3 | #define WLOG_APPENDER_CONSOLE 0 |
62 | 0 | #define WLOG_APPENDER_FILE 1 |
63 | 0 | #define WLOG_APPENDER_BINARY 2 |
64 | 0 | #define WLOG_APPENDER_CALLBACK 3 |
65 | 0 | #define WLOG_APPENDER_SYSLOG 4 |
66 | | #define WLOG_APPENDER_JOURNALD 5 |
67 | 0 | #define WLOG_APPENDER_UDP 6 |
68 | | |
69 | | typedef struct |
70 | | { |
71 | | DWORD Type; |
72 | | |
73 | | DWORD Level; |
74 | | |
75 | | LPSTR PrefixString; |
76 | | |
77 | | LPCSTR FormatString; |
78 | | LPCSTR TextString; |
79 | | |
80 | | size_t LineNumber; /* __LINE__ */ |
81 | | LPCSTR FileName; /* __FILE__ */ |
82 | | LPCSTR FunctionName; /* __func__ */ |
83 | | |
84 | | /* Data Message */ |
85 | | |
86 | | void* Data; |
87 | | size_t Length; |
88 | | |
89 | | /* Image Message */ |
90 | | |
91 | | void* ImageData; |
92 | | size_t ImageWidth; |
93 | | size_t ImageHeight; |
94 | | size_t ImageBpp; |
95 | | |
96 | | /* Packet Message */ |
97 | | |
98 | | void* PacketData; |
99 | | size_t PacketLength; |
100 | | DWORD PacketFlags; |
101 | | } wLogMessage; |
102 | | typedef struct s_wLogLayout wLogLayout; |
103 | | typedef struct s_wLogAppender wLogAppender; |
104 | | typedef struct s_wLog wLog; |
105 | | |
106 | | #define WLOG_PACKET_INBOUND 1 |
107 | 0 | #define WLOG_PACKET_OUTBOUND 2 |
108 | | |
109 | | WINPR_API BOOL WLog_PrintMessage(wLog* log, DWORD type, DWORD level, size_t line, |
110 | | const char* file, const char* function, ...); |
111 | | WINPR_API BOOL WLog_PrintMessageVA(wLog* log, DWORD type, DWORD level, size_t line, |
112 | | const char* file, const char* function, va_list args); |
113 | | |
114 | | WINPR_API wLog* WLog_GetRoot(void); |
115 | | WINPR_API wLog* WLog_Get(LPCSTR name); |
116 | | WINPR_API DWORD WLog_GetLogLevel(wLog* log); |
117 | | WINPR_API BOOL WLog_IsLevelActive(wLog* _log, DWORD _log_level); |
118 | | |
119 | | /** @brief Set a custom context for a dynamic logger. |
120 | | * This can be used to print a customized prefix, e.g. some session id for a specific context |
121 | | * |
122 | | * @param log The logger to ste the context for. Must not be \b NULL |
123 | | * @param fkt A function pointer that is called to get the custimized string. |
124 | | * @param context A context \b fkt is called with. Caller must ensure it is still allocated |
125 | | * when \b log is used |
126 | | * |
127 | | * @return \b TRUE for success, \b FALSE otherwise. |
128 | | */ |
129 | | WINPR_API BOOL WLog_SetContext(wLog* log, const char* (*fkt)(void*), void* context); |
130 | | |
131 | | #define WLog_Print_unchecked(_log, _log_level, ...) \ |
132 | 0 | do \ |
133 | 0 | { \ |
134 | 0 | WLog_PrintMessage(_log, WLOG_MESSAGE_TEXT, _log_level, __LINE__, __FILE__, __func__, \ |
135 | 0 | __VA_ARGS__); \ |
136 | 0 | } while (0) |
137 | | |
138 | | #define WLog_Print(_log, _log_level, ...) \ |
139 | 0 | do \ |
140 | 0 | { \ |
141 | 0 | if (WLog_IsLevelActive(_log, _log_level)) \ |
142 | 0 | { \ |
143 | 0 | WLog_Print_unchecked(_log, _log_level, __VA_ARGS__); \ |
144 | 0 | } \ |
145 | 0 | } while (0) |
146 | | |
147 | | #define WLog_Print_tag(_tag, _log_level, ...) \ |
148 | | do \ |
149 | | { \ |
150 | | static wLog* _log_cached_ptr = NULL; \ |
151 | | if (!_log_cached_ptr) \ |
152 | | _log_cached_ptr = WLog_Get(_tag); \ |
153 | | WLog_Print(_log_cached_ptr, _log_level, __VA_ARGS__); \ |
154 | | } while (0) |
155 | | |
156 | | #define WLog_PrintVA_unchecked(_log, _log_level, _args) \ |
157 | | do \ |
158 | | { \ |
159 | | WLog_PrintMessageVA(_log, WLOG_MESSAGE_TEXT, _log_level, __LINE__, __FILE__, __func__, \ |
160 | | _args); \ |
161 | | } while (0) |
162 | | |
163 | | #define WLog_PrintVA(_log, _log_level, _args) \ |
164 | | do \ |
165 | | { \ |
166 | | if (WLog_IsLevelActive(_log, _log_level)) \ |
167 | | { \ |
168 | | WLog_PrintVA_unchecked(_log, _log_level, _args); \ |
169 | | } \ |
170 | | } while (0) |
171 | | |
172 | | #define WLog_Data(_log, _log_level, ...) \ |
173 | | do \ |
174 | | { \ |
175 | | if (WLog_IsLevelActive(_log, _log_level)) \ |
176 | | { \ |
177 | | WLog_PrintMessage(_log, WLOG_MESSAGE_DATA, _log_level, __LINE__, __FILE__, __func__, \ |
178 | | __VA_ARGS__); \ |
179 | | } \ |
180 | | } while (0) |
181 | | |
182 | | #define WLog_Image(_log, _log_level, ...) \ |
183 | | do \ |
184 | | { \ |
185 | | if (WLog_IsLevelActive(_log, _log_level)) \ |
186 | | { \ |
187 | | WLog_PrintMessage(_log, WLOG_MESSAGE_DATA, _log_level, __LINE__, __FILE__, __func__, \ |
188 | | __VA_ARGS__); \ |
189 | | } \ |
190 | | } while (0) |
191 | | |
192 | | #define WLog_Packet(_log, _log_level, ...) \ |
193 | 0 | do \ |
194 | 0 | { \ |
195 | 0 | if (WLog_IsLevelActive(_log, _log_level)) \ |
196 | 0 | { \ |
197 | 0 | WLog_PrintMessage(_log, WLOG_MESSAGE_PACKET, _log_level, __LINE__, __FILE__, __func__, \ |
198 | 0 | __VA_ARGS__); \ |
199 | 0 | } \ |
200 | 0 | } while (0) |
201 | | |
202 | | static inline void WLog_Print_dbg_tag(const char* WINPR_RESTRICT tag, DWORD log_level, |
203 | | size_t line, const char* file, const char* fkt, ...) |
204 | 1.01k | { |
205 | 1.01k | static wLog* log_cached_ptr = NULL; |
206 | 1.01k | if (!log_cached_ptr) |
207 | 2 | log_cached_ptr = WLog_Get(tag); |
208 | | |
209 | 1.01k | if (WLog_IsLevelActive(log_cached_ptr, log_level)) |
210 | 1.01k | { |
211 | 1.01k | va_list ap; |
212 | 1.01k | va_start(ap, fkt); |
213 | 1.01k | WLog_PrintMessageVA(log_cached_ptr, WLOG_MESSAGE_TEXT, log_level, line, file, fkt, ap); |
214 | 1.01k | va_end(ap); |
215 | 1.01k | } |
216 | 1.01k | } Unexecuted instantiation: TestFuzzCodecs.c:WLog_Print_dbg_tag Unexecuted instantiation: planar.c:WLog_Print_dbg_tag Unexecuted instantiation: interleaved.c:WLog_Print_dbg_tag Unexecuted instantiation: progressive.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx.c:WLog_Print_dbg_tag Unexecuted instantiation: region.c:WLog_Print_dbg_tag Unexecuted instantiation: ncrush.c:WLog_Print_dbg_tag Unexecuted instantiation: xcrush.c:WLog_Print_dbg_tag Unexecuted instantiation: mppc.c:WLog_Print_dbg_tag Unexecuted instantiation: zgfx.c:WLog_Print_dbg_tag Unexecuted instantiation: clear.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_sse2.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_neon.c:WLog_Print_dbg_tag Unexecuted instantiation: primitives.c:WLog_Print_dbg_tag Unexecuted instantiation: color.c:WLog_Print_dbg_tag Unexecuted instantiation: bitmap.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_decode.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_dwt.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_encode.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_quantization.c:WLog_Print_dbg_tag Unexecuted instantiation: rfx_rlgr.c:WLog_Print_dbg_tag Unexecuted instantiation: nsc.c:WLog_Print_dbg_tag Unexecuted instantiation: nsc_encode.c:WLog_Print_dbg_tag Unexecuted instantiation: nsc_sse2.c:WLog_Print_dbg_tag Unexecuted instantiation: nsc_neon.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_add.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_andor.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_alphaComp.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_colors.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_copy.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_set.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_shift.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_sign.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_YUV.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_YCoCg.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_colors_neon.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_YCoCg_neon.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_YUV_neon.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_colors_sse2.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_set_sse2.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_add_sse3.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_alphaComp_sse3.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_andor_sse3.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_shift_sse3.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_sign_ssse3.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_YCoCg_ssse3.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_copy_sse4_1.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_YUV_sse4.1.c:WLog_Print_dbg_tag Unexecuted instantiation: prim_copy_avx2.c:WLog_Print_dbg_tag Unexecuted instantiation: init.c:WLog_Print_dbg_tag Unexecuted instantiation: sleep.c:WLog_Print_dbg_tag Unexecuted instantiation: interlocked.c:WLog_Print_dbg_tag Unexecuted instantiation: registry.c:WLog_Print_dbg_tag Unexecuted instantiation: stream.c:WLog_Print_dbg_tag Unexecuted instantiation: debug.c:WLog_Print_dbg_tag Unexecuted instantiation: BitStream.c:WLog_Print_dbg_tag Unexecuted instantiation: HashTable.c:WLog_Print_dbg_tag Unexecuted instantiation: BufferPool.c:WLog_Print_dbg_tag Unexecuted instantiation: ObjectPool.c:WLog_Print_dbg_tag Unexecuted instantiation: wlog.c:WLog_Print_dbg_tag Unexecuted instantiation: Appender.c:WLog_Print_dbg_tag Unexecuted instantiation: FileAppender.c:WLog_Print_dbg_tag Unexecuted instantiation: BinaryAppender.c:WLog_Print_dbg_tag Unexecuted instantiation: CallbackAppender.c:WLog_Print_dbg_tag Unexecuted instantiation: ConsoleAppender.c:WLog_Print_dbg_tag Unexecuted instantiation: UdpAppender.c:WLog_Print_dbg_tag Unexecuted instantiation: SyslogAppender.c:WLog_Print_dbg_tag Unexecuted instantiation: sysinfo.c:WLog_Print_dbg_tag Unexecuted instantiation: work.c:WLog_Print_dbg_tag Unexecuted instantiation: pool.c:WLog_Print_dbg_tag Unexecuted instantiation: handle.c:WLog_Print_dbg_tag Unexecuted instantiation: apc.c:WLog_Print_dbg_tag Unexecuted instantiation: process.c:WLog_Print_dbg_tag Unexecuted instantiation: thread.c:WLog_Print_dbg_tag Unexecuted instantiation: winsock.c:WLog_Print_dbg_tag Unexecuted instantiation: alignment.c:WLog_Print_dbg_tag Unexecuted instantiation: unicode.c:WLog_Print_dbg_tag Unexecuted instantiation: string.c:WLog_Print_dbg_tag Unexecuted instantiation: assert.c:WLog_Print_dbg_tag Unexecuted instantiation: unicode_builtin.c:WLog_Print_dbg_tag Unexecuted instantiation: critical.c:WLog_Print_dbg_tag Unexecuted instantiation: event.c:WLog_Print_dbg_tag Unexecuted instantiation: pollset.c:WLog_Print_dbg_tag Unexecuted instantiation: wait.c:WLog_Print_dbg_tag Unexecuted instantiation: generic.c:WLog_Print_dbg_tag Unexecuted instantiation: namedPipeClient.c:WLog_Print_dbg_tag Unexecuted instantiation: pattern.c:WLog_Print_dbg_tag Unexecuted instantiation: file.c:WLog_Print_dbg_tag Unexecuted instantiation: comm.c:WLog_Print_dbg_tag Unexecuted instantiation: comm_ioctl.c:WLog_Print_dbg_tag Unexecuted instantiation: comm_serial_sys.c:WLog_Print_dbg_tag Unexecuted instantiation: comm_sercx_sys.c:WLog_Print_dbg_tag Unexecuted instantiation: comm_sercx2_sys.c:WLog_Print_dbg_tag Unexecuted instantiation: pipe.c:WLog_Print_dbg_tag Unexecuted instantiation: environment.c:WLog_Print_dbg_tag Unexecuted instantiation: registry_reg.c:WLog_Print_dbg_tag Unexecuted instantiation: path.c:WLog_Print_dbg_tag Unexecuted instantiation: shell.c:WLog_Print_dbg_tag Unexecuted instantiation: Object.c:WLog_Print_dbg_tag Unexecuted instantiation: Queue.c:WLog_Print_dbg_tag Unexecuted instantiation: ArrayList.c:WLog_Print_dbg_tag Unexecuted instantiation: CountdownEvent.c:WLog_Print_dbg_tag Unexecuted instantiation: Layout.c:WLog_Print_dbg_tag Unexecuted instantiation: Message.c:WLog_Print_dbg_tag Unexecuted instantiation: DataMessage.c:WLog_Print_dbg_tag Unexecuted instantiation: ImageMessage.c:WLog_Print_dbg_tag Unexecuted instantiation: PacketMessage.c:WLog_Print_dbg_tag Unexecuted instantiation: error.c:WLog_Print_dbg_tag Unexecuted instantiation: argv.c:WLog_Print_dbg_tag Unexecuted instantiation: nt.c:WLog_Print_dbg_tag Unexecuted instantiation: comm_io.c:WLog_Print_dbg_tag Unexecuted instantiation: image.c:WLog_Print_dbg_tag Unexecuted instantiation: TestFuzzCommonAssistanceHexStringToBin.c:WLog_Print_dbg_tag Unexecuted instantiation: assistance.c:WLog_Print_dbg_tag Unexecuted instantiation: settings.c:WLog_Print_dbg_tag Unexecuted instantiation: settings_getters.c:WLog_Print_dbg_tag Unexecuted instantiation: settings_str.c:WLog_Print_dbg_tag Unexecuted instantiation: privatekey.c:WLog_Print_dbg_tag certificate.c:WLog_Print_dbg_tag Line | Count | Source | 204 | 2 | { | 205 | 2 | static wLog* log_cached_ptr = NULL; | 206 | 2 | if (!log_cached_ptr) | 207 | 1 | log_cached_ptr = WLog_Get(tag); | 208 | | | 209 | 2 | if (WLog_IsLevelActive(log_cached_ptr, log_level)) | 210 | 2 | { | 211 | 2 | va_list ap; | 212 | 2 | va_start(ap, fkt); | 213 | 2 | WLog_PrintMessageVA(log_cached_ptr, WLOG_MESSAGE_TEXT, log_level, line, file, fkt, ap); | 214 | 2 | va_end(ap); | 215 | 2 | } | 216 | 2 | } |
Unexecuted instantiation: crypto.c:WLog_Print_dbg_tag Unexecuted instantiation: capabilities.c:WLog_Print_dbg_tag Unexecuted instantiation: rdp.c:WLog_Print_dbg_tag Unexecuted instantiation: tpdu.c:WLog_Print_dbg_tag Unexecuted instantiation: tpkt.c:WLog_Print_dbg_tag Unexecuted instantiation: fastpath.c:WLog_Print_dbg_tag Unexecuted instantiation: surface.c:WLog_Print_dbg_tag Unexecuted instantiation: transport.c:WLog_Print_dbg_tag Unexecuted instantiation: update.c:WLog_Print_dbg_tag Unexecuted instantiation: message.c:WLog_Print_dbg_tag Unexecuted instantiation: channels.c:WLog_Print_dbg_tag Unexecuted instantiation: rdstls.c:WLog_Print_dbg_tag Unexecuted instantiation: aad.c:WLog_Print_dbg_tag Unexecuted instantiation: timer.c:WLog_Print_dbg_tag Unexecuted instantiation: tsg.c:WLog_Print_dbg_tag Unexecuted instantiation: rdg.c:WLog_Print_dbg_tag Unexecuted instantiation: rpc.c:WLog_Print_dbg_tag Unexecuted instantiation: rpc_bind.c:WLog_Print_dbg_tag Unexecuted instantiation: rpc_client.c:WLog_Print_dbg_tag Unexecuted instantiation: rpc_fault.c:WLog_Print_dbg_tag Unexecuted instantiation: rts.c:WLog_Print_dbg_tag Unexecuted instantiation: rts_signature.c:WLog_Print_dbg_tag Unexecuted instantiation: http.c:WLog_Print_dbg_tag Unexecuted instantiation: websocket.c:WLog_Print_dbg_tag Unexecuted instantiation: wst.c:WLog_Print_dbg_tag Unexecuted instantiation: ncacn_http.c:WLog_Print_dbg_tag Unexecuted instantiation: bulk.c:WLog_Print_dbg_tag Unexecuted instantiation: pcap.c:WLog_Print_dbg_tag Unexecuted instantiation: ringbuffer.c:WLog_Print_dbg_tag Unexecuted instantiation: brush.c:WLog_Print_dbg_tag Unexecuted instantiation: pointer.c:WLog_Print_dbg_tag Unexecuted instantiation: bitmap.c:WLog_Print_dbg_tag Unexecuted instantiation: persistent.c:WLog_Print_dbg_tag Unexecuted instantiation: offscreen.c:WLog_Print_dbg_tag Unexecuted instantiation: palette.c:WLog_Print_dbg_tag Unexecuted instantiation: glyph.c:WLog_Print_dbg_tag Unexecuted instantiation: cache.c:WLog_Print_dbg_tag Unexecuted instantiation: ber.c:WLog_Print_dbg_tag Unexecuted instantiation: per.c:WLog_Print_dbg_tag Unexecuted instantiation: base64.c:WLog_Print_dbg_tag x509_utils.c:WLog_Print_dbg_tag Line | Count | Source | 204 | 1.01k | { | 205 | 1.01k | static wLog* log_cached_ptr = NULL; | 206 | 1.01k | if (!log_cached_ptr) | 207 | 1 | log_cached_ptr = WLog_Get(tag); | 208 | | | 209 | 1.01k | if (WLog_IsLevelActive(log_cached_ptr, log_level)) | 210 | 1.01k | { | 211 | 1.01k | va_list ap; | 212 | 1.01k | va_start(ap, fkt); | 213 | 1.01k | WLog_PrintMessageVA(log_cached_ptr, WLOG_MESSAGE_TEXT, log_level, line, file, fkt, ap); | 214 | 1.01k | va_end(ap); | 215 | 1.01k | } | 216 | 1.01k | } |
Unexecuted instantiation: cert_common.c:WLog_Print_dbg_tag Unexecuted instantiation: tls.c:WLog_Print_dbg_tag Unexecuted instantiation: state.c:WLog_Print_dbg_tag Unexecuted instantiation: utils.c:WLog_Print_dbg_tag Unexecuted instantiation: activation.c:WLog_Print_dbg_tag Unexecuted instantiation: mcs.c:WLog_Print_dbg_tag Unexecuted instantiation: nla.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcardlogon.c:WLog_Print_dbg_tag Unexecuted instantiation: nego.c:WLog_Print_dbg_tag Unexecuted instantiation: info.c:WLog_Print_dbg_tag Unexecuted instantiation: input.c:WLog_Print_dbg_tag Unexecuted instantiation: license.c:WLog_Print_dbg_tag Unexecuted instantiation: errinfo.c:WLog_Print_dbg_tag Unexecuted instantiation: security.c:WLog_Print_dbg_tag Unexecuted instantiation: orders.c:WLog_Print_dbg_tag Unexecuted instantiation: freerdp.c:WLog_Print_dbg_tag Unexecuted instantiation: graphics.c:WLog_Print_dbg_tag Unexecuted instantiation: client.c:WLog_Print_dbg_tag Unexecuted instantiation: server.c:WLog_Print_dbg_tag Unexecuted instantiation: codecs.c:WLog_Print_dbg_tag Unexecuted instantiation: metrics.c:WLog_Print_dbg_tag Unexecuted instantiation: connection.c:WLog_Print_dbg_tag Unexecuted instantiation: redirection.c:WLog_Print_dbg_tag Unexecuted instantiation: autodetect.c:WLog_Print_dbg_tag Unexecuted instantiation: heartbeat.c:WLog_Print_dbg_tag Unexecuted instantiation: multitransport.c:WLog_Print_dbg_tag Unexecuted instantiation: timezone.c:WLog_Print_dbg_tag Unexecuted instantiation: childsession.c:WLog_Print_dbg_tag Unexecuted instantiation: tcp.c:WLog_Print_dbg_tag Unexecuted instantiation: proxy.c:WLog_Print_dbg_tag Unexecuted instantiation: window.c:WLog_Print_dbg_tag Unexecuted instantiation: peer.c:WLog_Print_dbg_tag Unexecuted instantiation: display.c:WLog_Print_dbg_tag Unexecuted instantiation: credssp_auth.c:WLog_Print_dbg_tag Unexecuted instantiation: arm.c:WLog_Print_dbg_tag Unexecuted instantiation: helpers.c:WLog_Print_dbg_tag Unexecuted instantiation: signal.c:WLog_Print_dbg_tag Unexecuted instantiation: addin.c:WLog_Print_dbg_tag Unexecuted instantiation: gdi.c:WLog_Print_dbg_tag Unexecuted instantiation: line.c:WLog_Print_dbg_tag Unexecuted instantiation: pen.c:WLog_Print_dbg_tag Unexecuted instantiation: shape.c:WLog_Print_dbg_tag Unexecuted instantiation: nine_grid.c:WLog_Print_dbg_tag Unexecuted instantiation: certificate_data.c:WLog_Print_dbg_tag Unexecuted instantiation: certificate_store.c:WLog_Print_dbg_tag Unexecuted instantiation: locale.c:WLog_Print_dbg_tag Unexecuted instantiation: streamdump.c:WLog_Print_dbg_tag Unexecuted instantiation: gcc.c:WLog_Print_dbg_tag Unexecuted instantiation: errbase.c:WLog_Print_dbg_tag Unexecuted instantiation: errconnect.c:WLog_Print_dbg_tag Unexecuted instantiation: clipping.c:WLog_Print_dbg_tag Unexecuted instantiation: dc.c:WLog_Print_dbg_tag Unexecuted instantiation: drawing.c:WLog_Print_dbg_tag Unexecuted instantiation: library.c:WLog_Print_dbg_tag Unexecuted instantiation: hash.c:WLog_Print_dbg_tag Unexecuted instantiation: cipher.c:WLog_Print_dbg_tag Unexecuted instantiation: io.c:WLog_Print_dbg_tag Unexecuted instantiation: ncrypt.c:WLog_Print_dbg_tag Unexecuted instantiation: json.c:WLog_Print_dbg_tag Unexecuted instantiation: sam.c:WLog_Print_dbg_tag Unexecuted instantiation: print.c:WLog_Print_dbg_tag Unexecuted instantiation: ssl.c:WLog_Print_dbg_tag Unexecuted instantiation: PubSub.c:WLog_Print_dbg_tag Unexecuted instantiation: ListDictionary.c:WLog_Print_dbg_tag Unexecuted instantiation: StreamPool.c:WLog_Print_dbg_tag Unexecuted instantiation: MessageQueue.c:WLog_Print_dbg_tag Unexecuted instantiation: asn1.c:WLog_Print_dbg_tag Unexecuted instantiation: sspi_winpr.c:WLog_Print_dbg_tag Unexecuted instantiation: sspi.c:WLog_Print_dbg_tag Unexecuted instantiation: wtsapi.c:WLog_Print_dbg_tag Unexecuted instantiation: ncrypt_pkcs11.c:WLog_Print_dbg_tag Unexecuted instantiation: ini.c:WLog_Print_dbg_tag Unexecuted instantiation: TimeZoneNameMapUtils.c:WLog_Print_dbg_tag Unexecuted instantiation: credssp.c:WLog_Print_dbg_tag Unexecuted instantiation: ntlm.c:WLog_Print_dbg_tag Unexecuted instantiation: kerberos.c:WLog_Print_dbg_tag Unexecuted instantiation: krb5glue_mit.c:WLog_Print_dbg_tag Unexecuted instantiation: negotiate.c:WLog_Print_dbg_tag Unexecuted instantiation: schannel.c:WLog_Print_dbg_tag Unexecuted instantiation: sspi_gss.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_pcsc.c:WLog_Print_dbg_tag Unexecuted instantiation: ntlm_message.c:WLog_Print_dbg_tag Unexecuted instantiation: schannel_openssl.c:WLog_Print_dbg_tag Unexecuted instantiation: ntlm_av_pairs.c:WLog_Print_dbg_tag Unexecuted instantiation: ntlm_compute.c:WLog_Print_dbg_tag Unexecuted instantiation: TestFuzzCryptoCertificateDataSetPEM.c:WLog_Print_dbg_tag Unexecuted instantiation: TestFuzzCoreServer.c:WLog_Print_dbg_tag Unexecuted instantiation: TestFuzzCoreClient.c:WLog_Print_dbg_tag Unexecuted instantiation: cmdline.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_cli.c:WLog_Print_dbg_tag Unexecuted instantiation: tables.c:WLog_Print_dbg_tag Unexecuted instantiation: drdynvc_main.c:WLog_Print_dbg_tag Unexecuted instantiation: remdesk_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpsnd_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpdr_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpdr_capabilities.c:WLog_Print_dbg_tag Unexecuted instantiation: rdp2tcp_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rail_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rail_orders.c:WLog_Print_dbg_tag Unexecuted instantiation: encomsp_main.c:WLog_Print_dbg_tag Unexecuted instantiation: cliprdr_main.c:WLog_Print_dbg_tag Unexecuted instantiation: cliprdr_common.c:WLog_Print_dbg_tag Unexecuted instantiation: video_main.c:WLog_Print_dbg_tag Unexecuted instantiation: sshagent_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpgfx_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpgfx_codec.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpgfx_common.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpei_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpei_common.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpear_main.c:WLog_Print_dbg_tag Unexecuted instantiation: location_main.c:WLog_Print_dbg_tag Unexecuted instantiation: geometry_main.c:WLog_Print_dbg_tag Unexecuted instantiation: echo_main.c:WLog_Print_dbg_tag Unexecuted instantiation: disp_main.c:WLog_Print_dbg_tag Unexecuted instantiation: disp_common.c:WLog_Print_dbg_tag Unexecuted instantiation: audin_main.c:WLog_Print_dbg_tag Unexecuted instantiation: ainput_main.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_main.c:WLog_Print_dbg_tag Unexecuted instantiation: serial_main.c:WLog_Print_dbg_tag Unexecuted instantiation: parallel_main.c:WLog_Print_dbg_tag Unexecuted instantiation: drive_main.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpsnd_oss.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpsnd_fake.c:WLog_Print_dbg_tag Unexecuted instantiation: audin_oss.c:WLog_Print_dbg_tag Unexecuted instantiation: geometry.c:WLog_Print_dbg_tag Unexecuted instantiation: generic_dynvc.c:WLog_Print_dbg_tag Unexecuted instantiation: irp.c:WLog_Print_dbg_tag Unexecuted instantiation: devman.c:WLog_Print_dbg_tag Unexecuted instantiation: rail_common.c:WLog_Print_dbg_tag Unexecuted instantiation: cliprdr_format.c:WLog_Print_dbg_tag Unexecuted instantiation: drive_file.c:WLog_Print_dbg_tag Unexecuted instantiation: dsp.c:WLog_Print_dbg_tag Unexecuted instantiation: audio.c:WLog_Print_dbg_tag Unexecuted instantiation: h264.c:WLog_Print_dbg_tag Unexecuted instantiation: yuv.c:WLog_Print_dbg_tag Unexecuted instantiation: encoded_types.c:WLog_Print_dbg_tag Unexecuted instantiation: passphrase.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpdr_utils.c:WLog_Print_dbg_tag Unexecuted instantiation: gfx.c:WLog_Print_dbg_tag Unexecuted instantiation: drdynvc.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_operations.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_pack.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_call.c:WLog_Print_dbg_tag Unexecuted instantiation: video.c:WLog_Print_dbg_tag Unexecuted instantiation: keyboard_layout.c:WLog_Print_dbg_tag Unexecuted instantiation: keyboard.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_emulate.c:WLog_Print_dbg_tag Unexecuted instantiation: smartcard_virtual_gids.c:WLog_Print_dbg_tag Unexecuted instantiation: LinkedList.c:WLog_Print_dbg_tag Unexecuted instantiation: sspicli.c:WLog_Print_dbg_tag Unexecuted instantiation: clipboard.c:WLog_Print_dbg_tag Unexecuted instantiation: synthetic_file.c:WLog_Print_dbg_tag Unexecuted instantiation: synthetic.c:WLog_Print_dbg_tag Unexecuted instantiation: remdesk_common.c:WLog_Print_dbg_tag Unexecuted instantiation: ndr.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpear_asn1.c:WLog_Print_dbg_tag Unexecuted instantiation: rdpear_common.c:WLog_Print_dbg_tag Unexecuted instantiation: TestFuzzCommonAssistanceParseFileBuffer.c:WLog_Print_dbg_tag Unexecuted instantiation: TestFuzzCommonAssistanceBinToHexString.c:WLog_Print_dbg_tag |
217 | | |
218 | | #define WLog_LVL(tag, lvl, ...) \ |
219 | 0 | WLog_Print_dbg_tag(tag, lvl, __LINE__, __FILE__, __func__, __VA_ARGS__) |
220 | | #define WLog_VRB(tag, ...) \ |
221 | 0 | WLog_Print_dbg_tag(tag, WLOG_TRACE, __LINE__, __FILE__, __func__, __VA_ARGS__) |
222 | | #define WLog_DBG(tag, ...) \ |
223 | 0 | WLog_Print_dbg_tag(tag, WLOG_DEBUG, __LINE__, __FILE__, __func__, __VA_ARGS__) |
224 | | #define WLog_INFO(tag, ...) \ |
225 | 0 | WLog_Print_dbg_tag(tag, WLOG_INFO, __LINE__, __FILE__, __func__, __VA_ARGS__) |
226 | | #define WLog_WARN(tag, ...) \ |
227 | 49 | WLog_Print_dbg_tag(tag, WLOG_WARN, __LINE__, __FILE__, __func__, __VA_ARGS__) |
228 | | #define WLog_ERR(tag, ...) \ |
229 | 969 | WLog_Print_dbg_tag(tag, WLOG_ERROR, __LINE__, __FILE__, __func__, __VA_ARGS__) |
230 | | #define WLog_FATAL(tag, ...) \ |
231 | 0 | WLog_Print_dbg_tag(tag, WLOG_FATAL, __LINE__, __FILE__, __func__, __VA_ARGS__) |
232 | | |
233 | | WINPR_API BOOL WLog_SetLogLevel(wLog* log, DWORD logLevel); |
234 | | WINPR_API BOOL WLog_SetStringLogLevel(wLog* log, LPCSTR level); |
235 | | WINPR_API BOOL WLog_AddStringLogFilters(LPCSTR filter); |
236 | | |
237 | | WINPR_API BOOL WLog_SetLogAppenderType(wLog* log, DWORD logAppenderType); |
238 | | WINPR_API wLogAppender* WLog_GetLogAppender(wLog* log); |
239 | | WINPR_API BOOL WLog_OpenAppender(wLog* log); |
240 | | WINPR_API BOOL WLog_CloseAppender(wLog* log); |
241 | | WINPR_API BOOL WLog_ConfigureAppender(wLogAppender* appender, const char* setting, void* value); |
242 | | |
243 | | WINPR_API wLogLayout* WLog_GetLogLayout(wLog* log); |
244 | | WINPR_API BOOL WLog_Layout_SetPrefixFormat(wLog* log, wLogLayout* layout, const char* format); |
245 | | |
246 | | #if defined(WITH_WINPR_DEPRECATED) |
247 | | /** Deprecated */ |
248 | | WINPR_DEPRECATED(WINPR_API BOOL WLog_Init(void)); |
249 | | /** Deprecated */ |
250 | | WINPR_DEPRECATED(WINPR_API BOOL WLog_Uninit(void)); |
251 | | #endif |
252 | | |
253 | | typedef BOOL (*wLogCallbackMessage_t)(const wLogMessage* msg); |
254 | | typedef BOOL (*wLogCallbackData_t)(const wLogMessage* msg); |
255 | | typedef BOOL (*wLogCallbackImage_t)(const wLogMessage* msg); |
256 | | typedef BOOL (*wLogCallbackPackage_t)(const wLogMessage* msg); |
257 | | |
258 | | typedef struct |
259 | | { |
260 | | wLogCallbackData_t data; |
261 | | wLogCallbackImage_t image; |
262 | | wLogCallbackMessage_t message; |
263 | | wLogCallbackPackage_t package; |
264 | | } wLogCallbacks; |
265 | | |
266 | | #ifdef __cplusplus |
267 | | } |
268 | | #endif |
269 | | |
270 | | #endif /* WINPR_WLOG_H */ |