μHAL (v2.7.9)
Part of the IPbus software repository
log.hxx
Go to the documentation of this file.
1 
2 #include <sstream> // for ostream, stringstream, endl
3 #include <string> // for operator+, basic_string
4 
5 #include <boost/thread/lock_guard.hpp> // for lock_guard
6 #include <boost/thread/mutex.hpp> // for mutex
7 
8 #include "uhal/log/exception.hpp" // for exception
9 #include "uhal/log/LogLevels.hpp" // for insert, ErrorLevel, DebugL...
10 #include "uhal/log/log_inserters.quote.hpp" // for operator<<
11 
12 
13 namespace uhal{
14 
15 // ======================================================================================================================================================
16 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
17 // ======================================================================================================================================================
18 
19 template< typename T0 >
20 void log ( FatalLevel& aFatal , const T0& aArg0 )
21 {
22  #ifndef LOGGING_EXCLUDE_FATAL
23  if( LoggingIncludes( aFatal ) ){
24  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
25  std::ostream& lStr( aFatal.stream() );
26  aFatal.head();
27  insert( lStr , aArg0 );
28  aFatal.tail();
29  }
30  #endif
31 }
32 
33 template< typename T0 , typename T1 >
34 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 )
35 {
36  #ifndef LOGGING_EXCLUDE_FATAL
37  if( LoggingIncludes( aFatal ) ){
38  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
39  std::ostream& lStr( aFatal.stream() );
40  aFatal.head();
41  insert( lStr , aArg0 );
42  insert( lStr , aArg1 );
43  aFatal.tail();
44  }
45  #endif
46 }
47 
48 template< typename T0 , typename T1 , typename T2 >
49 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
50 {
51  #ifndef LOGGING_EXCLUDE_FATAL
52  if( LoggingIncludes( aFatal ) ){
53  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
54  std::ostream& lStr( aFatal.stream() );
55  aFatal.head();
56  insert( lStr , aArg0 );
57  insert( lStr , aArg1 );
58  insert( lStr , aArg2 );
59  aFatal.tail();
60  }
61  #endif
62 }
63 
64 template< typename T0 , typename T1 , typename T2 , typename T3 >
65 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
66 {
67  #ifndef LOGGING_EXCLUDE_FATAL
68  if( LoggingIncludes( aFatal ) ){
69  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
70  std::ostream& lStr( aFatal.stream() );
71  aFatal.head();
72  insert( lStr , aArg0 );
73  insert( lStr , aArg1 );
74  insert( lStr , aArg2 );
75  insert( lStr , aArg3 );
76  aFatal.tail();
77  }
78  #endif
79 }
80 
81 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
82 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
83 {
84  #ifndef LOGGING_EXCLUDE_FATAL
85  if( LoggingIncludes( aFatal ) ){
86  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
87  std::ostream& lStr( aFatal.stream() );
88  aFatal.head();
89  insert( lStr , aArg0 );
90  insert( lStr , aArg1 );
91  insert( lStr , aArg2 );
92  insert( lStr , aArg3 );
93  insert( lStr , aArg4 );
94  aFatal.tail();
95  }
96  #endif
97 }
98 
99 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
100 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
101 {
102  #ifndef LOGGING_EXCLUDE_FATAL
103  if( LoggingIncludes( aFatal ) ){
104  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
105  std::ostream& lStr( aFatal.stream() );
106  aFatal.head();
107  insert( lStr , aArg0 );
108  insert( lStr , aArg1 );
109  insert( lStr , aArg2 );
110  insert( lStr , aArg3 );
111  insert( lStr , aArg4 );
112  insert( lStr , aArg5 );
113  aFatal.tail();
114  }
115  #endif
116 }
117 
118 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
119 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
120 {
121  #ifndef LOGGING_EXCLUDE_FATAL
122  if( LoggingIncludes( aFatal ) ){
123  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
124  std::ostream& lStr( aFatal.stream() );
125  aFatal.head();
126  insert( lStr , aArg0 );
127  insert( lStr , aArg1 );
128  insert( lStr , aArg2 );
129  insert( lStr , aArg3 );
130  insert( lStr , aArg4 );
131  insert( lStr , aArg5 );
132  insert( lStr , aArg6 );
133  aFatal.tail();
134  }
135  #endif
136 }
137 
138 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
139 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
140 {
141  #ifndef LOGGING_EXCLUDE_FATAL
142  if( LoggingIncludes( aFatal ) ){
143  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
144  std::ostream& lStr( aFatal.stream() );
145  aFatal.head();
146  insert( lStr , aArg0 );
147  insert( lStr , aArg1 );
148  insert( lStr , aArg2 );
149  insert( lStr , aArg3 );
150  insert( lStr , aArg4 );
151  insert( lStr , aArg5 );
152  insert( lStr , aArg6 );
153  insert( lStr , aArg7 );
154  aFatal.tail();
155  }
156  #endif
157 }
158 
159 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
160 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
161 {
162  #ifndef LOGGING_EXCLUDE_FATAL
163  if( LoggingIncludes( aFatal ) ){
164  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
165  std::ostream& lStr( aFatal.stream() );
166  aFatal.head();
167  insert( lStr , aArg0 );
168  insert( lStr , aArg1 );
169  insert( lStr , aArg2 );
170  insert( lStr , aArg3 );
171  insert( lStr , aArg4 );
172  insert( lStr , aArg5 );
173  insert( lStr , aArg6 );
174  insert( lStr , aArg7 );
175  insert( lStr , aArg8 );
176  aFatal.tail();
177  }
178  #endif
179 }
180 
181 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
182 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
183 {
184  #ifndef LOGGING_EXCLUDE_FATAL
185  if( LoggingIncludes( aFatal ) ){
186  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
187  std::ostream& lStr( aFatal.stream() );
188  aFatal.head();
189  insert( lStr , aArg0 );
190  insert( lStr , aArg1 );
191  insert( lStr , aArg2 );
192  insert( lStr , aArg3 );
193  insert( lStr , aArg4 );
194  insert( lStr , aArg5 );
195  insert( lStr , aArg6 );
196  insert( lStr , aArg7 );
197  insert( lStr , aArg8 );
198  insert( lStr , aArg9 );
199  aFatal.tail();
200  }
201  #endif
202 }
203 
204 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
205 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
206 {
207  #ifndef LOGGING_EXCLUDE_FATAL
208  if( LoggingIncludes( aFatal ) ){
209  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
210  std::ostream& lStr( aFatal.stream() );
211  aFatal.head();
212  insert( lStr , aArg0 );
213  insert( lStr , aArg1 );
214  insert( lStr , aArg2 );
215  insert( lStr , aArg3 );
216  insert( lStr , aArg4 );
217  insert( lStr , aArg5 );
218  insert( lStr , aArg6 );
219  insert( lStr , aArg7 );
220  insert( lStr , aArg8 );
221  insert( lStr , aArg9 );
222  insert( lStr , aArg10 );
223  aFatal.tail();
224  }
225  #endif
226 }
227 
228 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
229 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
230 {
231  #ifndef LOGGING_EXCLUDE_FATAL
232  if( LoggingIncludes( aFatal ) ){
233  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
234  std::ostream& lStr( aFatal.stream() );
235  aFatal.head();
236  insert( lStr , aArg0 );
237  insert( lStr , aArg1 );
238  insert( lStr , aArg2 );
239  insert( lStr , aArg3 );
240  insert( lStr , aArg4 );
241  insert( lStr , aArg5 );
242  insert( lStr , aArg6 );
243  insert( lStr , aArg7 );
244  insert( lStr , aArg8 );
245  insert( lStr , aArg9 );
246  insert( lStr , aArg10 );
247  insert( lStr , aArg11 );
248  aFatal.tail();
249  }
250  #endif
251 }
252 
253 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
254 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
255 {
256  #ifndef LOGGING_EXCLUDE_FATAL
257  if( LoggingIncludes( aFatal ) ){
258  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
259  std::ostream& lStr( aFatal.stream() );
260  aFatal.head();
261  insert( lStr , aArg0 );
262  insert( lStr , aArg1 );
263  insert( lStr , aArg2 );
264  insert( lStr , aArg3 );
265  insert( lStr , aArg4 );
266  insert( lStr , aArg5 );
267  insert( lStr , aArg6 );
268  insert( lStr , aArg7 );
269  insert( lStr , aArg8 );
270  insert( lStr , aArg9 );
271  insert( lStr , aArg10 );
272  insert( lStr , aArg11 );
273  insert( lStr , aArg12 );
274  aFatal.tail();
275  }
276  #endif
277 }
278 
279 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
280 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
281 {
282  #ifndef LOGGING_EXCLUDE_FATAL
283  if( LoggingIncludes( aFatal ) ){
284  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
285  std::ostream& lStr( aFatal.stream() );
286  aFatal.head();
287  insert( lStr , aArg0 );
288  insert( lStr , aArg1 );
289  insert( lStr , aArg2 );
290  insert( lStr , aArg3 );
291  insert( lStr , aArg4 );
292  insert( lStr , aArg5 );
293  insert( lStr , aArg6 );
294  insert( lStr , aArg7 );
295  insert( lStr , aArg8 );
296  insert( lStr , aArg9 );
297  insert( lStr , aArg10 );
298  insert( lStr , aArg11 );
299  insert( lStr , aArg12 );
300  insert( lStr , aArg13 );
301  aFatal.tail();
302  }
303  #endif
304 }
305 
306 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
307 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
308 {
309  #ifndef LOGGING_EXCLUDE_FATAL
310  if( LoggingIncludes( aFatal ) ){
311  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
312  std::ostream& lStr( aFatal.stream() );
313  aFatal.head();
314  insert( lStr , aArg0 );
315  insert( lStr , aArg1 );
316  insert( lStr , aArg2 );
317  insert( lStr , aArg3 );
318  insert( lStr , aArg4 );
319  insert( lStr , aArg5 );
320  insert( lStr , aArg6 );
321  insert( lStr , aArg7 );
322  insert( lStr , aArg8 );
323  insert( lStr , aArg9 );
324  insert( lStr , aArg10 );
325  insert( lStr , aArg11 );
326  insert( lStr , aArg12 );
327  insert( lStr , aArg13 );
328  insert( lStr , aArg14 );
329  aFatal.tail();
330  }
331  #endif
332 }
333 
334 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
335 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
336 {
337  #ifndef LOGGING_EXCLUDE_FATAL
338  if( LoggingIncludes( aFatal ) ){
339  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
340  std::ostream& lStr( aFatal.stream() );
341  aFatal.head();
342  insert( lStr , aArg0 );
343  insert( lStr , aArg1 );
344  insert( lStr , aArg2 );
345  insert( lStr , aArg3 );
346  insert( lStr , aArg4 );
347  insert( lStr , aArg5 );
348  insert( lStr , aArg6 );
349  insert( lStr , aArg7 );
350  insert( lStr , aArg8 );
351  insert( lStr , aArg9 );
352  insert( lStr , aArg10 );
353  insert( lStr , aArg11 );
354  insert( lStr , aArg12 );
355  insert( lStr , aArg13 );
356  insert( lStr , aArg14 );
357  insert( lStr , aArg15 );
358  aFatal.tail();
359  }
360  #endif
361 }
362 
363 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
364 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
365 {
366  #ifndef LOGGING_EXCLUDE_FATAL
367  if( LoggingIncludes( aFatal ) ){
368  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
369  std::ostream& lStr( aFatal.stream() );
370  aFatal.head();
371  insert( lStr , aArg0 );
372  insert( lStr , aArg1 );
373  insert( lStr , aArg2 );
374  insert( lStr , aArg3 );
375  insert( lStr , aArg4 );
376  insert( lStr , aArg5 );
377  insert( lStr , aArg6 );
378  insert( lStr , aArg7 );
379  insert( lStr , aArg8 );
380  insert( lStr , aArg9 );
381  insert( lStr , aArg10 );
382  insert( lStr , aArg11 );
383  insert( lStr , aArg12 );
384  insert( lStr , aArg13 );
385  insert( lStr , aArg14 );
386  insert( lStr , aArg15 );
387  insert( lStr , aArg16 );
388  aFatal.tail();
389  }
390  #endif
391 }
392 
393 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
394 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
395 {
396  #ifndef LOGGING_EXCLUDE_FATAL
397  if( LoggingIncludes( aFatal ) ){
398  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
399  std::ostream& lStr( aFatal.stream() );
400  aFatal.head();
401  insert( lStr , aArg0 );
402  insert( lStr , aArg1 );
403  insert( lStr , aArg2 );
404  insert( lStr , aArg3 );
405  insert( lStr , aArg4 );
406  insert( lStr , aArg5 );
407  insert( lStr , aArg6 );
408  insert( lStr , aArg7 );
409  insert( lStr , aArg8 );
410  insert( lStr , aArg9 );
411  insert( lStr , aArg10 );
412  insert( lStr , aArg11 );
413  insert( lStr , aArg12 );
414  insert( lStr , aArg13 );
415  insert( lStr , aArg14 );
416  insert( lStr , aArg15 );
417  insert( lStr , aArg16 );
418  insert( lStr , aArg17 );
419  aFatal.tail();
420  }
421  #endif
422 }
423 
424 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
425 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
426 {
427  #ifndef LOGGING_EXCLUDE_FATAL
428  if( LoggingIncludes( aFatal ) ){
429  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
430  std::ostream& lStr( aFatal.stream() );
431  aFatal.head();
432  insert( lStr , aArg0 );
433  insert( lStr , aArg1 );
434  insert( lStr , aArg2 );
435  insert( lStr , aArg3 );
436  insert( lStr , aArg4 );
437  insert( lStr , aArg5 );
438  insert( lStr , aArg6 );
439  insert( lStr , aArg7 );
440  insert( lStr , aArg8 );
441  insert( lStr , aArg9 );
442  insert( lStr , aArg10 );
443  insert( lStr , aArg11 );
444  insert( lStr , aArg12 );
445  insert( lStr , aArg13 );
446  insert( lStr , aArg14 );
447  insert( lStr , aArg15 );
448  insert( lStr , aArg16 );
449  insert( lStr , aArg17 );
450  insert( lStr , aArg18 );
451  aFatal.tail();
452  }
453  #endif
454 }
455 
456 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
457 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
458 {
459  #ifndef LOGGING_EXCLUDE_FATAL
460  if( LoggingIncludes( aFatal ) ){
461  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
462  std::ostream& lStr( aFatal.stream() );
463  aFatal.head();
464  insert( lStr , aArg0 );
465  insert( lStr , aArg1 );
466  insert( lStr , aArg2 );
467  insert( lStr , aArg3 );
468  insert( lStr , aArg4 );
469  insert( lStr , aArg5 );
470  insert( lStr , aArg6 );
471  insert( lStr , aArg7 );
472  insert( lStr , aArg8 );
473  insert( lStr , aArg9 );
474  insert( lStr , aArg10 );
475  insert( lStr , aArg11 );
476  insert( lStr , aArg12 );
477  insert( lStr , aArg13 );
478  insert( lStr , aArg14 );
479  insert( lStr , aArg15 );
480  insert( lStr , aArg16 );
481  insert( lStr , aArg17 );
482  insert( lStr , aArg18 );
483  insert( lStr , aArg19 );
484  aFatal.tail();
485  }
486  #endif
487 }
488 
489 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
490 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
491 {
492  #ifndef LOGGING_EXCLUDE_FATAL
493  if( LoggingIncludes( aFatal ) ){
494  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
495  std::ostream& lStr( aFatal.stream() );
496  aFatal.head();
497  insert( lStr , aArg0 );
498  insert( lStr , aArg1 );
499  insert( lStr , aArg2 );
500  insert( lStr , aArg3 );
501  insert( lStr , aArg4 );
502  insert( lStr , aArg5 );
503  insert( lStr , aArg6 );
504  insert( lStr , aArg7 );
505  insert( lStr , aArg8 );
506  insert( lStr , aArg9 );
507  insert( lStr , aArg10 );
508  insert( lStr , aArg11 );
509  insert( lStr , aArg12 );
510  insert( lStr , aArg13 );
511  insert( lStr , aArg14 );
512  insert( lStr , aArg15 );
513  insert( lStr , aArg16 );
514  insert( lStr , aArg17 );
515  insert( lStr , aArg18 );
516  insert( lStr , aArg19 );
517  insert( lStr , aArg20 );
518  aFatal.tail();
519  }
520  #endif
521 }
522 
523 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
524 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
525 {
526  #ifndef LOGGING_EXCLUDE_FATAL
527  if( LoggingIncludes( aFatal ) ){
528  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
529  std::ostream& lStr( aFatal.stream() );
530  aFatal.head();
531  insert( lStr , aArg0 );
532  insert( lStr , aArg1 );
533  insert( lStr , aArg2 );
534  insert( lStr , aArg3 );
535  insert( lStr , aArg4 );
536  insert( lStr , aArg5 );
537  insert( lStr , aArg6 );
538  insert( lStr , aArg7 );
539  insert( lStr , aArg8 );
540  insert( lStr , aArg9 );
541  insert( lStr , aArg10 );
542  insert( lStr , aArg11 );
543  insert( lStr , aArg12 );
544  insert( lStr , aArg13 );
545  insert( lStr , aArg14 );
546  insert( lStr , aArg15 );
547  insert( lStr , aArg16 );
548  insert( lStr , aArg17 );
549  insert( lStr , aArg18 );
550  insert( lStr , aArg19 );
551  insert( lStr , aArg20 );
552  insert( lStr , aArg21 );
553  aFatal.tail();
554  }
555  #endif
556 }
557 
558 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
559 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
560 {
561  #ifndef LOGGING_EXCLUDE_FATAL
562  if( LoggingIncludes( aFatal ) ){
563  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
564  std::ostream& lStr( aFatal.stream() );
565  aFatal.head();
566  insert( lStr , aArg0 );
567  insert( lStr , aArg1 );
568  insert( lStr , aArg2 );
569  insert( lStr , aArg3 );
570  insert( lStr , aArg4 );
571  insert( lStr , aArg5 );
572  insert( lStr , aArg6 );
573  insert( lStr , aArg7 );
574  insert( lStr , aArg8 );
575  insert( lStr , aArg9 );
576  insert( lStr , aArg10 );
577  insert( lStr , aArg11 );
578  insert( lStr , aArg12 );
579  insert( lStr , aArg13 );
580  insert( lStr , aArg14 );
581  insert( lStr , aArg15 );
582  insert( lStr , aArg16 );
583  insert( lStr , aArg17 );
584  insert( lStr , aArg18 );
585  insert( lStr , aArg19 );
586  insert( lStr , aArg20 );
587  insert( lStr , aArg21 );
588  insert( lStr , aArg22 );
589  aFatal.tail();
590  }
591  #endif
592 }
593 
594 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
595 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
596 {
597  #ifndef LOGGING_EXCLUDE_FATAL
598  if( LoggingIncludes( aFatal ) ){
599  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
600  std::ostream& lStr( aFatal.stream() );
601  aFatal.head();
602  insert( lStr , aArg0 );
603  insert( lStr , aArg1 );
604  insert( lStr , aArg2 );
605  insert( lStr , aArg3 );
606  insert( lStr , aArg4 );
607  insert( lStr , aArg5 );
608  insert( lStr , aArg6 );
609  insert( lStr , aArg7 );
610  insert( lStr , aArg8 );
611  insert( lStr , aArg9 );
612  insert( lStr , aArg10 );
613  insert( lStr , aArg11 );
614  insert( lStr , aArg12 );
615  insert( lStr , aArg13 );
616  insert( lStr , aArg14 );
617  insert( lStr , aArg15 );
618  insert( lStr , aArg16 );
619  insert( lStr , aArg17 );
620  insert( lStr , aArg18 );
621  insert( lStr , aArg19 );
622  insert( lStr , aArg20 );
623  insert( lStr , aArg21 );
624  insert( lStr , aArg22 );
625  insert( lStr , aArg23 );
626  aFatal.tail();
627  }
628  #endif
629 }
630 
631 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
632 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
633 {
634  #ifndef LOGGING_EXCLUDE_FATAL
635  if( LoggingIncludes( aFatal ) ){
636  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
637  std::ostream& lStr( aFatal.stream() );
638  aFatal.head();
639  insert( lStr , aArg0 );
640  insert( lStr , aArg1 );
641  insert( lStr , aArg2 );
642  insert( lStr , aArg3 );
643  insert( lStr , aArg4 );
644  insert( lStr , aArg5 );
645  insert( lStr , aArg6 );
646  insert( lStr , aArg7 );
647  insert( lStr , aArg8 );
648  insert( lStr , aArg9 );
649  insert( lStr , aArg10 );
650  insert( lStr , aArg11 );
651  insert( lStr , aArg12 );
652  insert( lStr , aArg13 );
653  insert( lStr , aArg14 );
654  insert( lStr , aArg15 );
655  insert( lStr , aArg16 );
656  insert( lStr , aArg17 );
657  insert( lStr , aArg18 );
658  insert( lStr , aArg19 );
659  insert( lStr , aArg20 );
660  insert( lStr , aArg21 );
661  insert( lStr , aArg22 );
662  insert( lStr , aArg23 );
663  insert( lStr , aArg24 );
664  aFatal.tail();
665  }
666  #endif
667 }
668 
669 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
670 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
671 {
672  #ifndef LOGGING_EXCLUDE_FATAL
673  if( LoggingIncludes( aFatal ) ){
674  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
675  std::ostream& lStr( aFatal.stream() );
676  aFatal.head();
677  insert( lStr , aArg0 );
678  insert( lStr , aArg1 );
679  insert( lStr , aArg2 );
680  insert( lStr , aArg3 );
681  insert( lStr , aArg4 );
682  insert( lStr , aArg5 );
683  insert( lStr , aArg6 );
684  insert( lStr , aArg7 );
685  insert( lStr , aArg8 );
686  insert( lStr , aArg9 );
687  insert( lStr , aArg10 );
688  insert( lStr , aArg11 );
689  insert( lStr , aArg12 );
690  insert( lStr , aArg13 );
691  insert( lStr , aArg14 );
692  insert( lStr , aArg15 );
693  insert( lStr , aArg16 );
694  insert( lStr , aArg17 );
695  insert( lStr , aArg18 );
696  insert( lStr , aArg19 );
697  insert( lStr , aArg20 );
698  insert( lStr , aArg21 );
699  insert( lStr , aArg22 );
700  insert( lStr , aArg23 );
701  insert( lStr , aArg24 );
702  insert( lStr , aArg25 );
703  aFatal.tail();
704  }
705  #endif
706 }
707 
708 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
709 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
710 {
711  #ifndef LOGGING_EXCLUDE_FATAL
712  if( LoggingIncludes( aFatal ) ){
713  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
714  std::ostream& lStr( aFatal.stream() );
715  aFatal.head();
716  insert( lStr , aArg0 );
717  insert( lStr , aArg1 );
718  insert( lStr , aArg2 );
719  insert( lStr , aArg3 );
720  insert( lStr , aArg4 );
721  insert( lStr , aArg5 );
722  insert( lStr , aArg6 );
723  insert( lStr , aArg7 );
724  insert( lStr , aArg8 );
725  insert( lStr , aArg9 );
726  insert( lStr , aArg10 );
727  insert( lStr , aArg11 );
728  insert( lStr , aArg12 );
729  insert( lStr , aArg13 );
730  insert( lStr , aArg14 );
731  insert( lStr , aArg15 );
732  insert( lStr , aArg16 );
733  insert( lStr , aArg17 );
734  insert( lStr , aArg18 );
735  insert( lStr , aArg19 );
736  insert( lStr , aArg20 );
737  insert( lStr , aArg21 );
738  insert( lStr , aArg22 );
739  insert( lStr , aArg23 );
740  insert( lStr , aArg24 );
741  insert( lStr , aArg25 );
742  insert( lStr , aArg26 );
743  aFatal.tail();
744  }
745  #endif
746 }
747 
748 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
749 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
750 {
751  #ifndef LOGGING_EXCLUDE_FATAL
752  if( LoggingIncludes( aFatal ) ){
753  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
754  std::ostream& lStr( aFatal.stream() );
755  aFatal.head();
756  insert( lStr , aArg0 );
757  insert( lStr , aArg1 );
758  insert( lStr , aArg2 );
759  insert( lStr , aArg3 );
760  insert( lStr , aArg4 );
761  insert( lStr , aArg5 );
762  insert( lStr , aArg6 );
763  insert( lStr , aArg7 );
764  insert( lStr , aArg8 );
765  insert( lStr , aArg9 );
766  insert( lStr , aArg10 );
767  insert( lStr , aArg11 );
768  insert( lStr , aArg12 );
769  insert( lStr , aArg13 );
770  insert( lStr , aArg14 );
771  insert( lStr , aArg15 );
772  insert( lStr , aArg16 );
773  insert( lStr , aArg17 );
774  insert( lStr , aArg18 );
775  insert( lStr , aArg19 );
776  insert( lStr , aArg20 );
777  insert( lStr , aArg21 );
778  insert( lStr , aArg22 );
779  insert( lStr , aArg23 );
780  insert( lStr , aArg24 );
781  insert( lStr , aArg25 );
782  insert( lStr , aArg26 );
783  insert( lStr , aArg27 );
784  aFatal.tail();
785  }
786  #endif
787 }
788 
789 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
790 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
791 {
792  #ifndef LOGGING_EXCLUDE_FATAL
793  if( LoggingIncludes( aFatal ) ){
794  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
795  std::ostream& lStr( aFatal.stream() );
796  aFatal.head();
797  insert( lStr , aArg0 );
798  insert( lStr , aArg1 );
799  insert( lStr , aArg2 );
800  insert( lStr , aArg3 );
801  insert( lStr , aArg4 );
802  insert( lStr , aArg5 );
803  insert( lStr , aArg6 );
804  insert( lStr , aArg7 );
805  insert( lStr , aArg8 );
806  insert( lStr , aArg9 );
807  insert( lStr , aArg10 );
808  insert( lStr , aArg11 );
809  insert( lStr , aArg12 );
810  insert( lStr , aArg13 );
811  insert( lStr , aArg14 );
812  insert( lStr , aArg15 );
813  insert( lStr , aArg16 );
814  insert( lStr , aArg17 );
815  insert( lStr , aArg18 );
816  insert( lStr , aArg19 );
817  insert( lStr , aArg20 );
818  insert( lStr , aArg21 );
819  insert( lStr , aArg22 );
820  insert( lStr , aArg23 );
821  insert( lStr , aArg24 );
822  insert( lStr , aArg25 );
823  insert( lStr , aArg26 );
824  insert( lStr , aArg27 );
825  insert( lStr , aArg28 );
826  aFatal.tail();
827  }
828  #endif
829 }
830 
831 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
832 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
833 {
834  #ifndef LOGGING_EXCLUDE_FATAL
835  if( LoggingIncludes( aFatal ) ){
836  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
837  std::ostream& lStr( aFatal.stream() );
838  aFatal.head();
839  insert( lStr , aArg0 );
840  insert( lStr , aArg1 );
841  insert( lStr , aArg2 );
842  insert( lStr , aArg3 );
843  insert( lStr , aArg4 );
844  insert( lStr , aArg5 );
845  insert( lStr , aArg6 );
846  insert( lStr , aArg7 );
847  insert( lStr , aArg8 );
848  insert( lStr , aArg9 );
849  insert( lStr , aArg10 );
850  insert( lStr , aArg11 );
851  insert( lStr , aArg12 );
852  insert( lStr , aArg13 );
853  insert( lStr , aArg14 );
854  insert( lStr , aArg15 );
855  insert( lStr , aArg16 );
856  insert( lStr , aArg17 );
857  insert( lStr , aArg18 );
858  insert( lStr , aArg19 );
859  insert( lStr , aArg20 );
860  insert( lStr , aArg21 );
861  insert( lStr , aArg22 );
862  insert( lStr , aArg23 );
863  insert( lStr , aArg24 );
864  insert( lStr , aArg25 );
865  insert( lStr , aArg26 );
866  insert( lStr , aArg27 );
867  insert( lStr , aArg28 );
868  insert( lStr , aArg29 );
869  aFatal.tail();
870  }
871  #endif
872 }
873 
874 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
875 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
876 {
877  #ifndef LOGGING_EXCLUDE_FATAL
878  if( LoggingIncludes( aFatal ) ){
879  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
880  std::ostream& lStr( aFatal.stream() );
881  aFatal.head();
882  insert( lStr , aArg0 );
883  insert( lStr , aArg1 );
884  insert( lStr , aArg2 );
885  insert( lStr , aArg3 );
886  insert( lStr , aArg4 );
887  insert( lStr , aArg5 );
888  insert( lStr , aArg6 );
889  insert( lStr , aArg7 );
890  insert( lStr , aArg8 );
891  insert( lStr , aArg9 );
892  insert( lStr , aArg10 );
893  insert( lStr , aArg11 );
894  insert( lStr , aArg12 );
895  insert( lStr , aArg13 );
896  insert( lStr , aArg14 );
897  insert( lStr , aArg15 );
898  insert( lStr , aArg16 );
899  insert( lStr , aArg17 );
900  insert( lStr , aArg18 );
901  insert( lStr , aArg19 );
902  insert( lStr , aArg20 );
903  insert( lStr , aArg21 );
904  insert( lStr , aArg22 );
905  insert( lStr , aArg23 );
906  insert( lStr , aArg24 );
907  insert( lStr , aArg25 );
908  insert( lStr , aArg26 );
909  insert( lStr , aArg27 );
910  insert( lStr , aArg28 );
911  insert( lStr , aArg29 );
912  insert( lStr , aArg30 );
913  aFatal.tail();
914  }
915  #endif
916 }
917 
918 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
919 void log ( FatalLevel& aFatal , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
920 {
921  #ifndef LOGGING_EXCLUDE_FATAL
922  if( LoggingIncludes( aFatal ) ){
923  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
924  std::ostream& lStr( aFatal.stream() );
925  aFatal.head();
926  insert( lStr , aArg0 );
927  insert( lStr , aArg1 );
928  insert( lStr , aArg2 );
929  insert( lStr , aArg3 );
930  insert( lStr , aArg4 );
931  insert( lStr , aArg5 );
932  insert( lStr , aArg6 );
933  insert( lStr , aArg7 );
934  insert( lStr , aArg8 );
935  insert( lStr , aArg9 );
936  insert( lStr , aArg10 );
937  insert( lStr , aArg11 );
938  insert( lStr , aArg12 );
939  insert( lStr , aArg13 );
940  insert( lStr , aArg14 );
941  insert( lStr , aArg15 );
942  insert( lStr , aArg16 );
943  insert( lStr , aArg17 );
944  insert( lStr , aArg18 );
945  insert( lStr , aArg19 );
946  insert( lStr , aArg20 );
947  insert( lStr , aArg21 );
948  insert( lStr , aArg22 );
949  insert( lStr , aArg23 );
950  insert( lStr , aArg24 );
951  insert( lStr , aArg25 );
952  insert( lStr , aArg26 );
953  insert( lStr , aArg27 );
954  insert( lStr , aArg28 );
955  insert( lStr , aArg29 );
956  insert( lStr , aArg30 );
957  insert( lStr , aArg31 );
958  aFatal.tail();
959  }
960  #endif
961 }
962 
963 // ======================================================================================================================================================
964 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
965 // ======================================================================================================================================================
966 
967 template< typename T0 >
968 void log ( ErrorLevel& aError , const T0& aArg0 )
969 {
970  #ifndef LOGGING_EXCLUDE_FATAL
971  #ifndef LOGGING_EXCLUDE_ERROR
972  if( LoggingIncludes( aError ) ){
973  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
974  std::ostream& lStr( aError.stream() );
975  aError.head();
976  insert( lStr , aArg0 );
977  aError.tail();
978  }
979  #endif
980  #endif
981 }
982 
983 template< typename T0 , typename T1 >
984 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 )
985 {
986  #ifndef LOGGING_EXCLUDE_FATAL
987  #ifndef LOGGING_EXCLUDE_ERROR
988  if( LoggingIncludes( aError ) ){
989  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
990  std::ostream& lStr( aError.stream() );
991  aError.head();
992  insert( lStr , aArg0 );
993  insert( lStr , aArg1 );
994  aError.tail();
995  }
996  #endif
997  #endif
998 }
999 
1000 template< typename T0 , typename T1 , typename T2 >
1001 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
1002 {
1003  #ifndef LOGGING_EXCLUDE_FATAL
1004  #ifndef LOGGING_EXCLUDE_ERROR
1005  if( LoggingIncludes( aError ) ){
1006  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1007  std::ostream& lStr( aError.stream() );
1008  aError.head();
1009  insert( lStr , aArg0 );
1010  insert( lStr , aArg1 );
1011  insert( lStr , aArg2 );
1012  aError.tail();
1013  }
1014  #endif
1015  #endif
1016 }
1017 
1018 template< typename T0 , typename T1 , typename T2 , typename T3 >
1019 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
1020 {
1021  #ifndef LOGGING_EXCLUDE_FATAL
1022  #ifndef LOGGING_EXCLUDE_ERROR
1023  if( LoggingIncludes( aError ) ){
1024  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1025  std::ostream& lStr( aError.stream() );
1026  aError.head();
1027  insert( lStr , aArg0 );
1028  insert( lStr , aArg1 );
1029  insert( lStr , aArg2 );
1030  insert( lStr , aArg3 );
1031  aError.tail();
1032  }
1033  #endif
1034  #endif
1035 }
1036 
1037 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
1038 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
1039 {
1040  #ifndef LOGGING_EXCLUDE_FATAL
1041  #ifndef LOGGING_EXCLUDE_ERROR
1042  if( LoggingIncludes( aError ) ){
1043  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1044  std::ostream& lStr( aError.stream() );
1045  aError.head();
1046  insert( lStr , aArg0 );
1047  insert( lStr , aArg1 );
1048  insert( lStr , aArg2 );
1049  insert( lStr , aArg3 );
1050  insert( lStr , aArg4 );
1051  aError.tail();
1052  }
1053  #endif
1054  #endif
1055 }
1056 
1057 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
1058 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
1059 {
1060  #ifndef LOGGING_EXCLUDE_FATAL
1061  #ifndef LOGGING_EXCLUDE_ERROR
1062  if( LoggingIncludes( aError ) ){
1063  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1064  std::ostream& lStr( aError.stream() );
1065  aError.head();
1066  insert( lStr , aArg0 );
1067  insert( lStr , aArg1 );
1068  insert( lStr , aArg2 );
1069  insert( lStr , aArg3 );
1070  insert( lStr , aArg4 );
1071  insert( lStr , aArg5 );
1072  aError.tail();
1073  }
1074  #endif
1075  #endif
1076 }
1077 
1078 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
1079 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
1080 {
1081  #ifndef LOGGING_EXCLUDE_FATAL
1082  #ifndef LOGGING_EXCLUDE_ERROR
1083  if( LoggingIncludes( aError ) ){
1084  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1085  std::ostream& lStr( aError.stream() );
1086  aError.head();
1087  insert( lStr , aArg0 );
1088  insert( lStr , aArg1 );
1089  insert( lStr , aArg2 );
1090  insert( lStr , aArg3 );
1091  insert( lStr , aArg4 );
1092  insert( lStr , aArg5 );
1093  insert( lStr , aArg6 );
1094  aError.tail();
1095  }
1096  #endif
1097  #endif
1098 }
1099 
1100 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
1101 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
1102 {
1103  #ifndef LOGGING_EXCLUDE_FATAL
1104  #ifndef LOGGING_EXCLUDE_ERROR
1105  if( LoggingIncludes( aError ) ){
1106  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1107  std::ostream& lStr( aError.stream() );
1108  aError.head();
1109  insert( lStr , aArg0 );
1110  insert( lStr , aArg1 );
1111  insert( lStr , aArg2 );
1112  insert( lStr , aArg3 );
1113  insert( lStr , aArg4 );
1114  insert( lStr , aArg5 );
1115  insert( lStr , aArg6 );
1116  insert( lStr , aArg7 );
1117  aError.tail();
1118  }
1119  #endif
1120  #endif
1121 }
1122 
1123 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
1124 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
1125 {
1126  #ifndef LOGGING_EXCLUDE_FATAL
1127  #ifndef LOGGING_EXCLUDE_ERROR
1128  if( LoggingIncludes( aError ) ){
1129  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1130  std::ostream& lStr( aError.stream() );
1131  aError.head();
1132  insert( lStr , aArg0 );
1133  insert( lStr , aArg1 );
1134  insert( lStr , aArg2 );
1135  insert( lStr , aArg3 );
1136  insert( lStr , aArg4 );
1137  insert( lStr , aArg5 );
1138  insert( lStr , aArg6 );
1139  insert( lStr , aArg7 );
1140  insert( lStr , aArg8 );
1141  aError.tail();
1142  }
1143  #endif
1144  #endif
1145 }
1146 
1147 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
1148 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
1149 {
1150  #ifndef LOGGING_EXCLUDE_FATAL
1151  #ifndef LOGGING_EXCLUDE_ERROR
1152  if( LoggingIncludes( aError ) ){
1153  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1154  std::ostream& lStr( aError.stream() );
1155  aError.head();
1156  insert( lStr , aArg0 );
1157  insert( lStr , aArg1 );
1158  insert( lStr , aArg2 );
1159  insert( lStr , aArg3 );
1160  insert( lStr , aArg4 );
1161  insert( lStr , aArg5 );
1162  insert( lStr , aArg6 );
1163  insert( lStr , aArg7 );
1164  insert( lStr , aArg8 );
1165  insert( lStr , aArg9 );
1166  aError.tail();
1167  }
1168  #endif
1169  #endif
1170 }
1171 
1172 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
1173 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
1174 {
1175  #ifndef LOGGING_EXCLUDE_FATAL
1176  #ifndef LOGGING_EXCLUDE_ERROR
1177  if( LoggingIncludes( aError ) ){
1178  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1179  std::ostream& lStr( aError.stream() );
1180  aError.head();
1181  insert( lStr , aArg0 );
1182  insert( lStr , aArg1 );
1183  insert( lStr , aArg2 );
1184  insert( lStr , aArg3 );
1185  insert( lStr , aArg4 );
1186  insert( lStr , aArg5 );
1187  insert( lStr , aArg6 );
1188  insert( lStr , aArg7 );
1189  insert( lStr , aArg8 );
1190  insert( lStr , aArg9 );
1191  insert( lStr , aArg10 );
1192  aError.tail();
1193  }
1194  #endif
1195  #endif
1196 }
1197 
1198 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
1199 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
1200 {
1201  #ifndef LOGGING_EXCLUDE_FATAL
1202  #ifndef LOGGING_EXCLUDE_ERROR
1203  if( LoggingIncludes( aError ) ){
1204  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1205  std::ostream& lStr( aError.stream() );
1206  aError.head();
1207  insert( lStr , aArg0 );
1208  insert( lStr , aArg1 );
1209  insert( lStr , aArg2 );
1210  insert( lStr , aArg3 );
1211  insert( lStr , aArg4 );
1212  insert( lStr , aArg5 );
1213  insert( lStr , aArg6 );
1214  insert( lStr , aArg7 );
1215  insert( lStr , aArg8 );
1216  insert( lStr , aArg9 );
1217  insert( lStr , aArg10 );
1218  insert( lStr , aArg11 );
1219  aError.tail();
1220  }
1221  #endif
1222  #endif
1223 }
1224 
1225 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
1226 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
1227 {
1228  #ifndef LOGGING_EXCLUDE_FATAL
1229  #ifndef LOGGING_EXCLUDE_ERROR
1230  if( LoggingIncludes( aError ) ){
1231  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1232  std::ostream& lStr( aError.stream() );
1233  aError.head();
1234  insert( lStr , aArg0 );
1235  insert( lStr , aArg1 );
1236  insert( lStr , aArg2 );
1237  insert( lStr , aArg3 );
1238  insert( lStr , aArg4 );
1239  insert( lStr , aArg5 );
1240  insert( lStr , aArg6 );
1241  insert( lStr , aArg7 );
1242  insert( lStr , aArg8 );
1243  insert( lStr , aArg9 );
1244  insert( lStr , aArg10 );
1245  insert( lStr , aArg11 );
1246  insert( lStr , aArg12 );
1247  aError.tail();
1248  }
1249  #endif
1250  #endif
1251 }
1252 
1253 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
1254 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
1255 {
1256  #ifndef LOGGING_EXCLUDE_FATAL
1257  #ifndef LOGGING_EXCLUDE_ERROR
1258  if( LoggingIncludes( aError ) ){
1259  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1260  std::ostream& lStr( aError.stream() );
1261  aError.head();
1262  insert( lStr , aArg0 );
1263  insert( lStr , aArg1 );
1264  insert( lStr , aArg2 );
1265  insert( lStr , aArg3 );
1266  insert( lStr , aArg4 );
1267  insert( lStr , aArg5 );
1268  insert( lStr , aArg6 );
1269  insert( lStr , aArg7 );
1270  insert( lStr , aArg8 );
1271  insert( lStr , aArg9 );
1272  insert( lStr , aArg10 );
1273  insert( lStr , aArg11 );
1274  insert( lStr , aArg12 );
1275  insert( lStr , aArg13 );
1276  aError.tail();
1277  }
1278  #endif
1279  #endif
1280 }
1281 
1282 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
1283 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
1284 {
1285  #ifndef LOGGING_EXCLUDE_FATAL
1286  #ifndef LOGGING_EXCLUDE_ERROR
1287  if( LoggingIncludes( aError ) ){
1288  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1289  std::ostream& lStr( aError.stream() );
1290  aError.head();
1291  insert( lStr , aArg0 );
1292  insert( lStr , aArg1 );
1293  insert( lStr , aArg2 );
1294  insert( lStr , aArg3 );
1295  insert( lStr , aArg4 );
1296  insert( lStr , aArg5 );
1297  insert( lStr , aArg6 );
1298  insert( lStr , aArg7 );
1299  insert( lStr , aArg8 );
1300  insert( lStr , aArg9 );
1301  insert( lStr , aArg10 );
1302  insert( lStr , aArg11 );
1303  insert( lStr , aArg12 );
1304  insert( lStr , aArg13 );
1305  insert( lStr , aArg14 );
1306  aError.tail();
1307  }
1308  #endif
1309  #endif
1310 }
1311 
1312 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
1313 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
1314 {
1315  #ifndef LOGGING_EXCLUDE_FATAL
1316  #ifndef LOGGING_EXCLUDE_ERROR
1317  if( LoggingIncludes( aError ) ){
1318  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1319  std::ostream& lStr( aError.stream() );
1320  aError.head();
1321  insert( lStr , aArg0 );
1322  insert( lStr , aArg1 );
1323  insert( lStr , aArg2 );
1324  insert( lStr , aArg3 );
1325  insert( lStr , aArg4 );
1326  insert( lStr , aArg5 );
1327  insert( lStr , aArg6 );
1328  insert( lStr , aArg7 );
1329  insert( lStr , aArg8 );
1330  insert( lStr , aArg9 );
1331  insert( lStr , aArg10 );
1332  insert( lStr , aArg11 );
1333  insert( lStr , aArg12 );
1334  insert( lStr , aArg13 );
1335  insert( lStr , aArg14 );
1336  insert( lStr , aArg15 );
1337  aError.tail();
1338  }
1339  #endif
1340  #endif
1341 }
1342 
1343 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
1344 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
1345 {
1346  #ifndef LOGGING_EXCLUDE_FATAL
1347  #ifndef LOGGING_EXCLUDE_ERROR
1348  if( LoggingIncludes( aError ) ){
1349  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1350  std::ostream& lStr( aError.stream() );
1351  aError.head();
1352  insert( lStr , aArg0 );
1353  insert( lStr , aArg1 );
1354  insert( lStr , aArg2 );
1355  insert( lStr , aArg3 );
1356  insert( lStr , aArg4 );
1357  insert( lStr , aArg5 );
1358  insert( lStr , aArg6 );
1359  insert( lStr , aArg7 );
1360  insert( lStr , aArg8 );
1361  insert( lStr , aArg9 );
1362  insert( lStr , aArg10 );
1363  insert( lStr , aArg11 );
1364  insert( lStr , aArg12 );
1365  insert( lStr , aArg13 );
1366  insert( lStr , aArg14 );
1367  insert( lStr , aArg15 );
1368  insert( lStr , aArg16 );
1369  aError.tail();
1370  }
1371  #endif
1372  #endif
1373 }
1374 
1375 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
1376 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
1377 {
1378  #ifndef LOGGING_EXCLUDE_FATAL
1379  #ifndef LOGGING_EXCLUDE_ERROR
1380  if( LoggingIncludes( aError ) ){
1381  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1382  std::ostream& lStr( aError.stream() );
1383  aError.head();
1384  insert( lStr , aArg0 );
1385  insert( lStr , aArg1 );
1386  insert( lStr , aArg2 );
1387  insert( lStr , aArg3 );
1388  insert( lStr , aArg4 );
1389  insert( lStr , aArg5 );
1390  insert( lStr , aArg6 );
1391  insert( lStr , aArg7 );
1392  insert( lStr , aArg8 );
1393  insert( lStr , aArg9 );
1394  insert( lStr , aArg10 );
1395  insert( lStr , aArg11 );
1396  insert( lStr , aArg12 );
1397  insert( lStr , aArg13 );
1398  insert( lStr , aArg14 );
1399  insert( lStr , aArg15 );
1400  insert( lStr , aArg16 );
1401  insert( lStr , aArg17 );
1402  aError.tail();
1403  }
1404  #endif
1405  #endif
1406 }
1407 
1408 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
1409 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
1410 {
1411  #ifndef LOGGING_EXCLUDE_FATAL
1412  #ifndef LOGGING_EXCLUDE_ERROR
1413  if( LoggingIncludes( aError ) ){
1414  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1415  std::ostream& lStr( aError.stream() );
1416  aError.head();
1417  insert( lStr , aArg0 );
1418  insert( lStr , aArg1 );
1419  insert( lStr , aArg2 );
1420  insert( lStr , aArg3 );
1421  insert( lStr , aArg4 );
1422  insert( lStr , aArg5 );
1423  insert( lStr , aArg6 );
1424  insert( lStr , aArg7 );
1425  insert( lStr , aArg8 );
1426  insert( lStr , aArg9 );
1427  insert( lStr , aArg10 );
1428  insert( lStr , aArg11 );
1429  insert( lStr , aArg12 );
1430  insert( lStr , aArg13 );
1431  insert( lStr , aArg14 );
1432  insert( lStr , aArg15 );
1433  insert( lStr , aArg16 );
1434  insert( lStr , aArg17 );
1435  insert( lStr , aArg18 );
1436  aError.tail();
1437  }
1438  #endif
1439  #endif
1440 }
1441 
1442 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
1443 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
1444 {
1445  #ifndef LOGGING_EXCLUDE_FATAL
1446  #ifndef LOGGING_EXCLUDE_ERROR
1447  if( LoggingIncludes( aError ) ){
1448  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1449  std::ostream& lStr( aError.stream() );
1450  aError.head();
1451  insert( lStr , aArg0 );
1452  insert( lStr , aArg1 );
1453  insert( lStr , aArg2 );
1454  insert( lStr , aArg3 );
1455  insert( lStr , aArg4 );
1456  insert( lStr , aArg5 );
1457  insert( lStr , aArg6 );
1458  insert( lStr , aArg7 );
1459  insert( lStr , aArg8 );
1460  insert( lStr , aArg9 );
1461  insert( lStr , aArg10 );
1462  insert( lStr , aArg11 );
1463  insert( lStr , aArg12 );
1464  insert( lStr , aArg13 );
1465  insert( lStr , aArg14 );
1466  insert( lStr , aArg15 );
1467  insert( lStr , aArg16 );
1468  insert( lStr , aArg17 );
1469  insert( lStr , aArg18 );
1470  insert( lStr , aArg19 );
1471  aError.tail();
1472  }
1473  #endif
1474  #endif
1475 }
1476 
1477 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
1478 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
1479 {
1480  #ifndef LOGGING_EXCLUDE_FATAL
1481  #ifndef LOGGING_EXCLUDE_ERROR
1482  if( LoggingIncludes( aError ) ){
1483  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1484  std::ostream& lStr( aError.stream() );
1485  aError.head();
1486  insert( lStr , aArg0 );
1487  insert( lStr , aArg1 );
1488  insert( lStr , aArg2 );
1489  insert( lStr , aArg3 );
1490  insert( lStr , aArg4 );
1491  insert( lStr , aArg5 );
1492  insert( lStr , aArg6 );
1493  insert( lStr , aArg7 );
1494  insert( lStr , aArg8 );
1495  insert( lStr , aArg9 );
1496  insert( lStr , aArg10 );
1497  insert( lStr , aArg11 );
1498  insert( lStr , aArg12 );
1499  insert( lStr , aArg13 );
1500  insert( lStr , aArg14 );
1501  insert( lStr , aArg15 );
1502  insert( lStr , aArg16 );
1503  insert( lStr , aArg17 );
1504  insert( lStr , aArg18 );
1505  insert( lStr , aArg19 );
1506  insert( lStr , aArg20 );
1507  aError.tail();
1508  }
1509  #endif
1510  #endif
1511 }
1512 
1513 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
1514 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
1515 {
1516  #ifndef LOGGING_EXCLUDE_FATAL
1517  #ifndef LOGGING_EXCLUDE_ERROR
1518  if( LoggingIncludes( aError ) ){
1519  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1520  std::ostream& lStr( aError.stream() );
1521  aError.head();
1522  insert( lStr , aArg0 );
1523  insert( lStr , aArg1 );
1524  insert( lStr , aArg2 );
1525  insert( lStr , aArg3 );
1526  insert( lStr , aArg4 );
1527  insert( lStr , aArg5 );
1528  insert( lStr , aArg6 );
1529  insert( lStr , aArg7 );
1530  insert( lStr , aArg8 );
1531  insert( lStr , aArg9 );
1532  insert( lStr , aArg10 );
1533  insert( lStr , aArg11 );
1534  insert( lStr , aArg12 );
1535  insert( lStr , aArg13 );
1536  insert( lStr , aArg14 );
1537  insert( lStr , aArg15 );
1538  insert( lStr , aArg16 );
1539  insert( lStr , aArg17 );
1540  insert( lStr , aArg18 );
1541  insert( lStr , aArg19 );
1542  insert( lStr , aArg20 );
1543  insert( lStr , aArg21 );
1544  aError.tail();
1545  }
1546  #endif
1547  #endif
1548 }
1549 
1550 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
1551 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
1552 {
1553  #ifndef LOGGING_EXCLUDE_FATAL
1554  #ifndef LOGGING_EXCLUDE_ERROR
1555  if( LoggingIncludes( aError ) ){
1556  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1557  std::ostream& lStr( aError.stream() );
1558  aError.head();
1559  insert( lStr , aArg0 );
1560  insert( lStr , aArg1 );
1561  insert( lStr , aArg2 );
1562  insert( lStr , aArg3 );
1563  insert( lStr , aArg4 );
1564  insert( lStr , aArg5 );
1565  insert( lStr , aArg6 );
1566  insert( lStr , aArg7 );
1567  insert( lStr , aArg8 );
1568  insert( lStr , aArg9 );
1569  insert( lStr , aArg10 );
1570  insert( lStr , aArg11 );
1571  insert( lStr , aArg12 );
1572  insert( lStr , aArg13 );
1573  insert( lStr , aArg14 );
1574  insert( lStr , aArg15 );
1575  insert( lStr , aArg16 );
1576  insert( lStr , aArg17 );
1577  insert( lStr , aArg18 );
1578  insert( lStr , aArg19 );
1579  insert( lStr , aArg20 );
1580  insert( lStr , aArg21 );
1581  insert( lStr , aArg22 );
1582  aError.tail();
1583  }
1584  #endif
1585  #endif
1586 }
1587 
1588 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
1589 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
1590 {
1591  #ifndef LOGGING_EXCLUDE_FATAL
1592  #ifndef LOGGING_EXCLUDE_ERROR
1593  if( LoggingIncludes( aError ) ){
1594  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1595  std::ostream& lStr( aError.stream() );
1596  aError.head();
1597  insert( lStr , aArg0 );
1598  insert( lStr , aArg1 );
1599  insert( lStr , aArg2 );
1600  insert( lStr , aArg3 );
1601  insert( lStr , aArg4 );
1602  insert( lStr , aArg5 );
1603  insert( lStr , aArg6 );
1604  insert( lStr , aArg7 );
1605  insert( lStr , aArg8 );
1606  insert( lStr , aArg9 );
1607  insert( lStr , aArg10 );
1608  insert( lStr , aArg11 );
1609  insert( lStr , aArg12 );
1610  insert( lStr , aArg13 );
1611  insert( lStr , aArg14 );
1612  insert( lStr , aArg15 );
1613  insert( lStr , aArg16 );
1614  insert( lStr , aArg17 );
1615  insert( lStr , aArg18 );
1616  insert( lStr , aArg19 );
1617  insert( lStr , aArg20 );
1618  insert( lStr , aArg21 );
1619  insert( lStr , aArg22 );
1620  insert( lStr , aArg23 );
1621  aError.tail();
1622  }
1623  #endif
1624  #endif
1625 }
1626 
1627 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
1628 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
1629 {
1630  #ifndef LOGGING_EXCLUDE_FATAL
1631  #ifndef LOGGING_EXCLUDE_ERROR
1632  if( LoggingIncludes( aError ) ){
1633  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1634  std::ostream& lStr( aError.stream() );
1635  aError.head();
1636  insert( lStr , aArg0 );
1637  insert( lStr , aArg1 );
1638  insert( lStr , aArg2 );
1639  insert( lStr , aArg3 );
1640  insert( lStr , aArg4 );
1641  insert( lStr , aArg5 );
1642  insert( lStr , aArg6 );
1643  insert( lStr , aArg7 );
1644  insert( lStr , aArg8 );
1645  insert( lStr , aArg9 );
1646  insert( lStr , aArg10 );
1647  insert( lStr , aArg11 );
1648  insert( lStr , aArg12 );
1649  insert( lStr , aArg13 );
1650  insert( lStr , aArg14 );
1651  insert( lStr , aArg15 );
1652  insert( lStr , aArg16 );
1653  insert( lStr , aArg17 );
1654  insert( lStr , aArg18 );
1655  insert( lStr , aArg19 );
1656  insert( lStr , aArg20 );
1657  insert( lStr , aArg21 );
1658  insert( lStr , aArg22 );
1659  insert( lStr , aArg23 );
1660  insert( lStr , aArg24 );
1661  aError.tail();
1662  }
1663  #endif
1664  #endif
1665 }
1666 
1667 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
1668 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
1669 {
1670  #ifndef LOGGING_EXCLUDE_FATAL
1671  #ifndef LOGGING_EXCLUDE_ERROR
1672  if( LoggingIncludes( aError ) ){
1673  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1674  std::ostream& lStr( aError.stream() );
1675  aError.head();
1676  insert( lStr , aArg0 );
1677  insert( lStr , aArg1 );
1678  insert( lStr , aArg2 );
1679  insert( lStr , aArg3 );
1680  insert( lStr , aArg4 );
1681  insert( lStr , aArg5 );
1682  insert( lStr , aArg6 );
1683  insert( lStr , aArg7 );
1684  insert( lStr , aArg8 );
1685  insert( lStr , aArg9 );
1686  insert( lStr , aArg10 );
1687  insert( lStr , aArg11 );
1688  insert( lStr , aArg12 );
1689  insert( lStr , aArg13 );
1690  insert( lStr , aArg14 );
1691  insert( lStr , aArg15 );
1692  insert( lStr , aArg16 );
1693  insert( lStr , aArg17 );
1694  insert( lStr , aArg18 );
1695  insert( lStr , aArg19 );
1696  insert( lStr , aArg20 );
1697  insert( lStr , aArg21 );
1698  insert( lStr , aArg22 );
1699  insert( lStr , aArg23 );
1700  insert( lStr , aArg24 );
1701  insert( lStr , aArg25 );
1702  aError.tail();
1703  }
1704  #endif
1705  #endif
1706 }
1707 
1708 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
1709 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
1710 {
1711  #ifndef LOGGING_EXCLUDE_FATAL
1712  #ifndef LOGGING_EXCLUDE_ERROR
1713  if( LoggingIncludes( aError ) ){
1714  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1715  std::ostream& lStr( aError.stream() );
1716  aError.head();
1717  insert( lStr , aArg0 );
1718  insert( lStr , aArg1 );
1719  insert( lStr , aArg2 );
1720  insert( lStr , aArg3 );
1721  insert( lStr , aArg4 );
1722  insert( lStr , aArg5 );
1723  insert( lStr , aArg6 );
1724  insert( lStr , aArg7 );
1725  insert( lStr , aArg8 );
1726  insert( lStr , aArg9 );
1727  insert( lStr , aArg10 );
1728  insert( lStr , aArg11 );
1729  insert( lStr , aArg12 );
1730  insert( lStr , aArg13 );
1731  insert( lStr , aArg14 );
1732  insert( lStr , aArg15 );
1733  insert( lStr , aArg16 );
1734  insert( lStr , aArg17 );
1735  insert( lStr , aArg18 );
1736  insert( lStr , aArg19 );
1737  insert( lStr , aArg20 );
1738  insert( lStr , aArg21 );
1739  insert( lStr , aArg22 );
1740  insert( lStr , aArg23 );
1741  insert( lStr , aArg24 );
1742  insert( lStr , aArg25 );
1743  insert( lStr , aArg26 );
1744  aError.tail();
1745  }
1746  #endif
1747  #endif
1748 }
1749 
1750 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
1751 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
1752 {
1753  #ifndef LOGGING_EXCLUDE_FATAL
1754  #ifndef LOGGING_EXCLUDE_ERROR
1755  if( LoggingIncludes( aError ) ){
1756  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1757  std::ostream& lStr( aError.stream() );
1758  aError.head();
1759  insert( lStr , aArg0 );
1760  insert( lStr , aArg1 );
1761  insert( lStr , aArg2 );
1762  insert( lStr , aArg3 );
1763  insert( lStr , aArg4 );
1764  insert( lStr , aArg5 );
1765  insert( lStr , aArg6 );
1766  insert( lStr , aArg7 );
1767  insert( lStr , aArg8 );
1768  insert( lStr , aArg9 );
1769  insert( lStr , aArg10 );
1770  insert( lStr , aArg11 );
1771  insert( lStr , aArg12 );
1772  insert( lStr , aArg13 );
1773  insert( lStr , aArg14 );
1774  insert( lStr , aArg15 );
1775  insert( lStr , aArg16 );
1776  insert( lStr , aArg17 );
1777  insert( lStr , aArg18 );
1778  insert( lStr , aArg19 );
1779  insert( lStr , aArg20 );
1780  insert( lStr , aArg21 );
1781  insert( lStr , aArg22 );
1782  insert( lStr , aArg23 );
1783  insert( lStr , aArg24 );
1784  insert( lStr , aArg25 );
1785  insert( lStr , aArg26 );
1786  insert( lStr , aArg27 );
1787  aError.tail();
1788  }
1789  #endif
1790  #endif
1791 }
1792 
1793 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
1794 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
1795 {
1796  #ifndef LOGGING_EXCLUDE_FATAL
1797  #ifndef LOGGING_EXCLUDE_ERROR
1798  if( LoggingIncludes( aError ) ){
1799  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1800  std::ostream& lStr( aError.stream() );
1801  aError.head();
1802  insert( lStr , aArg0 );
1803  insert( lStr , aArg1 );
1804  insert( lStr , aArg2 );
1805  insert( lStr , aArg3 );
1806  insert( lStr , aArg4 );
1807  insert( lStr , aArg5 );
1808  insert( lStr , aArg6 );
1809  insert( lStr , aArg7 );
1810  insert( lStr , aArg8 );
1811  insert( lStr , aArg9 );
1812  insert( lStr , aArg10 );
1813  insert( lStr , aArg11 );
1814  insert( lStr , aArg12 );
1815  insert( lStr , aArg13 );
1816  insert( lStr , aArg14 );
1817  insert( lStr , aArg15 );
1818  insert( lStr , aArg16 );
1819  insert( lStr , aArg17 );
1820  insert( lStr , aArg18 );
1821  insert( lStr , aArg19 );
1822  insert( lStr , aArg20 );
1823  insert( lStr , aArg21 );
1824  insert( lStr , aArg22 );
1825  insert( lStr , aArg23 );
1826  insert( lStr , aArg24 );
1827  insert( lStr , aArg25 );
1828  insert( lStr , aArg26 );
1829  insert( lStr , aArg27 );
1830  insert( lStr , aArg28 );
1831  aError.tail();
1832  }
1833  #endif
1834  #endif
1835 }
1836 
1837 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
1838 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
1839 {
1840  #ifndef LOGGING_EXCLUDE_FATAL
1841  #ifndef LOGGING_EXCLUDE_ERROR
1842  if( LoggingIncludes( aError ) ){
1843  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1844  std::ostream& lStr( aError.stream() );
1845  aError.head();
1846  insert( lStr , aArg0 );
1847  insert( lStr , aArg1 );
1848  insert( lStr , aArg2 );
1849  insert( lStr , aArg3 );
1850  insert( lStr , aArg4 );
1851  insert( lStr , aArg5 );
1852  insert( lStr , aArg6 );
1853  insert( lStr , aArg7 );
1854  insert( lStr , aArg8 );
1855  insert( lStr , aArg9 );
1856  insert( lStr , aArg10 );
1857  insert( lStr , aArg11 );
1858  insert( lStr , aArg12 );
1859  insert( lStr , aArg13 );
1860  insert( lStr , aArg14 );
1861  insert( lStr , aArg15 );
1862  insert( lStr , aArg16 );
1863  insert( lStr , aArg17 );
1864  insert( lStr , aArg18 );
1865  insert( lStr , aArg19 );
1866  insert( lStr , aArg20 );
1867  insert( lStr , aArg21 );
1868  insert( lStr , aArg22 );
1869  insert( lStr , aArg23 );
1870  insert( lStr , aArg24 );
1871  insert( lStr , aArg25 );
1872  insert( lStr , aArg26 );
1873  insert( lStr , aArg27 );
1874  insert( lStr , aArg28 );
1875  insert( lStr , aArg29 );
1876  aError.tail();
1877  }
1878  #endif
1879  #endif
1880 }
1881 
1882 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
1883 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
1884 {
1885  #ifndef LOGGING_EXCLUDE_FATAL
1886  #ifndef LOGGING_EXCLUDE_ERROR
1887  if( LoggingIncludes( aError ) ){
1888  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1889  std::ostream& lStr( aError.stream() );
1890  aError.head();
1891  insert( lStr , aArg0 );
1892  insert( lStr , aArg1 );
1893  insert( lStr , aArg2 );
1894  insert( lStr , aArg3 );
1895  insert( lStr , aArg4 );
1896  insert( lStr , aArg5 );
1897  insert( lStr , aArg6 );
1898  insert( lStr , aArg7 );
1899  insert( lStr , aArg8 );
1900  insert( lStr , aArg9 );
1901  insert( lStr , aArg10 );
1902  insert( lStr , aArg11 );
1903  insert( lStr , aArg12 );
1904  insert( lStr , aArg13 );
1905  insert( lStr , aArg14 );
1906  insert( lStr , aArg15 );
1907  insert( lStr , aArg16 );
1908  insert( lStr , aArg17 );
1909  insert( lStr , aArg18 );
1910  insert( lStr , aArg19 );
1911  insert( lStr , aArg20 );
1912  insert( lStr , aArg21 );
1913  insert( lStr , aArg22 );
1914  insert( lStr , aArg23 );
1915  insert( lStr , aArg24 );
1916  insert( lStr , aArg25 );
1917  insert( lStr , aArg26 );
1918  insert( lStr , aArg27 );
1919  insert( lStr , aArg28 );
1920  insert( lStr , aArg29 );
1921  insert( lStr , aArg30 );
1922  aError.tail();
1923  }
1924  #endif
1925  #endif
1926 }
1927 
1928 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
1929 void log ( ErrorLevel& aError , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
1930 {
1931  #ifndef LOGGING_EXCLUDE_FATAL
1932  #ifndef LOGGING_EXCLUDE_ERROR
1933  if( LoggingIncludes( aError ) ){
1934  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1935  std::ostream& lStr( aError.stream() );
1936  aError.head();
1937  insert( lStr , aArg0 );
1938  insert( lStr , aArg1 );
1939  insert( lStr , aArg2 );
1940  insert( lStr , aArg3 );
1941  insert( lStr , aArg4 );
1942  insert( lStr , aArg5 );
1943  insert( lStr , aArg6 );
1944  insert( lStr , aArg7 );
1945  insert( lStr , aArg8 );
1946  insert( lStr , aArg9 );
1947  insert( lStr , aArg10 );
1948  insert( lStr , aArg11 );
1949  insert( lStr , aArg12 );
1950  insert( lStr , aArg13 );
1951  insert( lStr , aArg14 );
1952  insert( lStr , aArg15 );
1953  insert( lStr , aArg16 );
1954  insert( lStr , aArg17 );
1955  insert( lStr , aArg18 );
1956  insert( lStr , aArg19 );
1957  insert( lStr , aArg20 );
1958  insert( lStr , aArg21 );
1959  insert( lStr , aArg22 );
1960  insert( lStr , aArg23 );
1961  insert( lStr , aArg24 );
1962  insert( lStr , aArg25 );
1963  insert( lStr , aArg26 );
1964  insert( lStr , aArg27 );
1965  insert( lStr , aArg28 );
1966  insert( lStr , aArg29 );
1967  insert( lStr , aArg30 );
1968  insert( lStr , aArg31 );
1969  aError.tail();
1970  }
1971  #endif
1972  #endif
1973 }
1974 
1975 // ======================================================================================================================================================
1976 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
1977 // ======================================================================================================================================================
1978 
1979 template< typename T0 >
1980 void log ( WarningLevel& aWarning , const T0& aArg0 )
1981 {
1982  #ifndef LOGGING_EXCLUDE_FATAL
1983  #ifndef LOGGING_EXCLUDE_ERROR
1984  #ifndef LOGGING_EXCLUDE_WARNING
1985  if( LoggingIncludes( aWarning ) ){
1986  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
1987  std::ostream& lStr( aWarning.stream() );
1988  aWarning.head();
1989  insert( lStr , aArg0 );
1990  aWarning.tail();
1991  }
1992  #endif
1993  #endif
1994  #endif
1995 }
1996 
1997 template< typename T0 , typename T1 >
1998 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 )
1999 {
2000  #ifndef LOGGING_EXCLUDE_FATAL
2001  #ifndef LOGGING_EXCLUDE_ERROR
2002  #ifndef LOGGING_EXCLUDE_WARNING
2003  if( LoggingIncludes( aWarning ) ){
2004  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2005  std::ostream& lStr( aWarning.stream() );
2006  aWarning.head();
2007  insert( lStr , aArg0 );
2008  insert( lStr , aArg1 );
2009  aWarning.tail();
2010  }
2011  #endif
2012  #endif
2013  #endif
2014 }
2015 
2016 template< typename T0 , typename T1 , typename T2 >
2017 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
2018 {
2019  #ifndef LOGGING_EXCLUDE_FATAL
2020  #ifndef LOGGING_EXCLUDE_ERROR
2021  #ifndef LOGGING_EXCLUDE_WARNING
2022  if( LoggingIncludes( aWarning ) ){
2023  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2024  std::ostream& lStr( aWarning.stream() );
2025  aWarning.head();
2026  insert( lStr , aArg0 );
2027  insert( lStr , aArg1 );
2028  insert( lStr , aArg2 );
2029  aWarning.tail();
2030  }
2031  #endif
2032  #endif
2033  #endif
2034 }
2035 
2036 template< typename T0 , typename T1 , typename T2 , typename T3 >
2037 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
2038 {
2039  #ifndef LOGGING_EXCLUDE_FATAL
2040  #ifndef LOGGING_EXCLUDE_ERROR
2041  #ifndef LOGGING_EXCLUDE_WARNING
2042  if( LoggingIncludes( aWarning ) ){
2043  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2044  std::ostream& lStr( aWarning.stream() );
2045  aWarning.head();
2046  insert( lStr , aArg0 );
2047  insert( lStr , aArg1 );
2048  insert( lStr , aArg2 );
2049  insert( lStr , aArg3 );
2050  aWarning.tail();
2051  }
2052  #endif
2053  #endif
2054  #endif
2055 }
2056 
2057 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
2058 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
2059 {
2060  #ifndef LOGGING_EXCLUDE_FATAL
2061  #ifndef LOGGING_EXCLUDE_ERROR
2062  #ifndef LOGGING_EXCLUDE_WARNING
2063  if( LoggingIncludes( aWarning ) ){
2064  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2065  std::ostream& lStr( aWarning.stream() );
2066  aWarning.head();
2067  insert( lStr , aArg0 );
2068  insert( lStr , aArg1 );
2069  insert( lStr , aArg2 );
2070  insert( lStr , aArg3 );
2071  insert( lStr , aArg4 );
2072  aWarning.tail();
2073  }
2074  #endif
2075  #endif
2076  #endif
2077 }
2078 
2079 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
2080 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
2081 {
2082  #ifndef LOGGING_EXCLUDE_FATAL
2083  #ifndef LOGGING_EXCLUDE_ERROR
2084  #ifndef LOGGING_EXCLUDE_WARNING
2085  if( LoggingIncludes( aWarning ) ){
2086  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2087  std::ostream& lStr( aWarning.stream() );
2088  aWarning.head();
2089  insert( lStr , aArg0 );
2090  insert( lStr , aArg1 );
2091  insert( lStr , aArg2 );
2092  insert( lStr , aArg3 );
2093  insert( lStr , aArg4 );
2094  insert( lStr , aArg5 );
2095  aWarning.tail();
2096  }
2097  #endif
2098  #endif
2099  #endif
2100 }
2101 
2102 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
2103 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
2104 {
2105  #ifndef LOGGING_EXCLUDE_FATAL
2106  #ifndef LOGGING_EXCLUDE_ERROR
2107  #ifndef LOGGING_EXCLUDE_WARNING
2108  if( LoggingIncludes( aWarning ) ){
2109  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2110  std::ostream& lStr( aWarning.stream() );
2111  aWarning.head();
2112  insert( lStr , aArg0 );
2113  insert( lStr , aArg1 );
2114  insert( lStr , aArg2 );
2115  insert( lStr , aArg3 );
2116  insert( lStr , aArg4 );
2117  insert( lStr , aArg5 );
2118  insert( lStr , aArg6 );
2119  aWarning.tail();
2120  }
2121  #endif
2122  #endif
2123  #endif
2124 }
2125 
2126 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
2127 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
2128 {
2129  #ifndef LOGGING_EXCLUDE_FATAL
2130  #ifndef LOGGING_EXCLUDE_ERROR
2131  #ifndef LOGGING_EXCLUDE_WARNING
2132  if( LoggingIncludes( aWarning ) ){
2133  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2134  std::ostream& lStr( aWarning.stream() );
2135  aWarning.head();
2136  insert( lStr , aArg0 );
2137  insert( lStr , aArg1 );
2138  insert( lStr , aArg2 );
2139  insert( lStr , aArg3 );
2140  insert( lStr , aArg4 );
2141  insert( lStr , aArg5 );
2142  insert( lStr , aArg6 );
2143  insert( lStr , aArg7 );
2144  aWarning.tail();
2145  }
2146  #endif
2147  #endif
2148  #endif
2149 }
2150 
2151 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
2152 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
2153 {
2154  #ifndef LOGGING_EXCLUDE_FATAL
2155  #ifndef LOGGING_EXCLUDE_ERROR
2156  #ifndef LOGGING_EXCLUDE_WARNING
2157  if( LoggingIncludes( aWarning ) ){
2158  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2159  std::ostream& lStr( aWarning.stream() );
2160  aWarning.head();
2161  insert( lStr , aArg0 );
2162  insert( lStr , aArg1 );
2163  insert( lStr , aArg2 );
2164  insert( lStr , aArg3 );
2165  insert( lStr , aArg4 );
2166  insert( lStr , aArg5 );
2167  insert( lStr , aArg6 );
2168  insert( lStr , aArg7 );
2169  insert( lStr , aArg8 );
2170  aWarning.tail();
2171  }
2172  #endif
2173  #endif
2174  #endif
2175 }
2176 
2177 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
2178 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
2179 {
2180  #ifndef LOGGING_EXCLUDE_FATAL
2181  #ifndef LOGGING_EXCLUDE_ERROR
2182  #ifndef LOGGING_EXCLUDE_WARNING
2183  if( LoggingIncludes( aWarning ) ){
2184  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2185  std::ostream& lStr( aWarning.stream() );
2186  aWarning.head();
2187  insert( lStr , aArg0 );
2188  insert( lStr , aArg1 );
2189  insert( lStr , aArg2 );
2190  insert( lStr , aArg3 );
2191  insert( lStr , aArg4 );
2192  insert( lStr , aArg5 );
2193  insert( lStr , aArg6 );
2194  insert( lStr , aArg7 );
2195  insert( lStr , aArg8 );
2196  insert( lStr , aArg9 );
2197  aWarning.tail();
2198  }
2199  #endif
2200  #endif
2201  #endif
2202 }
2203 
2204 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
2205 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
2206 {
2207  #ifndef LOGGING_EXCLUDE_FATAL
2208  #ifndef LOGGING_EXCLUDE_ERROR
2209  #ifndef LOGGING_EXCLUDE_WARNING
2210  if( LoggingIncludes( aWarning ) ){
2211  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2212  std::ostream& lStr( aWarning.stream() );
2213  aWarning.head();
2214  insert( lStr , aArg0 );
2215  insert( lStr , aArg1 );
2216  insert( lStr , aArg2 );
2217  insert( lStr , aArg3 );
2218  insert( lStr , aArg4 );
2219  insert( lStr , aArg5 );
2220  insert( lStr , aArg6 );
2221  insert( lStr , aArg7 );
2222  insert( lStr , aArg8 );
2223  insert( lStr , aArg9 );
2224  insert( lStr , aArg10 );
2225  aWarning.tail();
2226  }
2227  #endif
2228  #endif
2229  #endif
2230 }
2231 
2232 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
2233 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
2234 {
2235  #ifndef LOGGING_EXCLUDE_FATAL
2236  #ifndef LOGGING_EXCLUDE_ERROR
2237  #ifndef LOGGING_EXCLUDE_WARNING
2238  if( LoggingIncludes( aWarning ) ){
2239  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2240  std::ostream& lStr( aWarning.stream() );
2241  aWarning.head();
2242  insert( lStr , aArg0 );
2243  insert( lStr , aArg1 );
2244  insert( lStr , aArg2 );
2245  insert( lStr , aArg3 );
2246  insert( lStr , aArg4 );
2247  insert( lStr , aArg5 );
2248  insert( lStr , aArg6 );
2249  insert( lStr , aArg7 );
2250  insert( lStr , aArg8 );
2251  insert( lStr , aArg9 );
2252  insert( lStr , aArg10 );
2253  insert( lStr , aArg11 );
2254  aWarning.tail();
2255  }
2256  #endif
2257  #endif
2258  #endif
2259 }
2260 
2261 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
2262 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
2263 {
2264  #ifndef LOGGING_EXCLUDE_FATAL
2265  #ifndef LOGGING_EXCLUDE_ERROR
2266  #ifndef LOGGING_EXCLUDE_WARNING
2267  if( LoggingIncludes( aWarning ) ){
2268  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2269  std::ostream& lStr( aWarning.stream() );
2270  aWarning.head();
2271  insert( lStr , aArg0 );
2272  insert( lStr , aArg1 );
2273  insert( lStr , aArg2 );
2274  insert( lStr , aArg3 );
2275  insert( lStr , aArg4 );
2276  insert( lStr , aArg5 );
2277  insert( lStr , aArg6 );
2278  insert( lStr , aArg7 );
2279  insert( lStr , aArg8 );
2280  insert( lStr , aArg9 );
2281  insert( lStr , aArg10 );
2282  insert( lStr , aArg11 );
2283  insert( lStr , aArg12 );
2284  aWarning.tail();
2285  }
2286  #endif
2287  #endif
2288  #endif
2289 }
2290 
2291 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
2292 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
2293 {
2294  #ifndef LOGGING_EXCLUDE_FATAL
2295  #ifndef LOGGING_EXCLUDE_ERROR
2296  #ifndef LOGGING_EXCLUDE_WARNING
2297  if( LoggingIncludes( aWarning ) ){
2298  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2299  std::ostream& lStr( aWarning.stream() );
2300  aWarning.head();
2301  insert( lStr , aArg0 );
2302  insert( lStr , aArg1 );
2303  insert( lStr , aArg2 );
2304  insert( lStr , aArg3 );
2305  insert( lStr , aArg4 );
2306  insert( lStr , aArg5 );
2307  insert( lStr , aArg6 );
2308  insert( lStr , aArg7 );
2309  insert( lStr , aArg8 );
2310  insert( lStr , aArg9 );
2311  insert( lStr , aArg10 );
2312  insert( lStr , aArg11 );
2313  insert( lStr , aArg12 );
2314  insert( lStr , aArg13 );
2315  aWarning.tail();
2316  }
2317  #endif
2318  #endif
2319  #endif
2320 }
2321 
2322 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
2323 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
2324 {
2325  #ifndef LOGGING_EXCLUDE_FATAL
2326  #ifndef LOGGING_EXCLUDE_ERROR
2327  #ifndef LOGGING_EXCLUDE_WARNING
2328  if( LoggingIncludes( aWarning ) ){
2329  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2330  std::ostream& lStr( aWarning.stream() );
2331  aWarning.head();
2332  insert( lStr , aArg0 );
2333  insert( lStr , aArg1 );
2334  insert( lStr , aArg2 );
2335  insert( lStr , aArg3 );
2336  insert( lStr , aArg4 );
2337  insert( lStr , aArg5 );
2338  insert( lStr , aArg6 );
2339  insert( lStr , aArg7 );
2340  insert( lStr , aArg8 );
2341  insert( lStr , aArg9 );
2342  insert( lStr , aArg10 );
2343  insert( lStr , aArg11 );
2344  insert( lStr , aArg12 );
2345  insert( lStr , aArg13 );
2346  insert( lStr , aArg14 );
2347  aWarning.tail();
2348  }
2349  #endif
2350  #endif
2351  #endif
2352 }
2353 
2354 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
2355 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
2356 {
2357  #ifndef LOGGING_EXCLUDE_FATAL
2358  #ifndef LOGGING_EXCLUDE_ERROR
2359  #ifndef LOGGING_EXCLUDE_WARNING
2360  if( LoggingIncludes( aWarning ) ){
2361  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2362  std::ostream& lStr( aWarning.stream() );
2363  aWarning.head();
2364  insert( lStr , aArg0 );
2365  insert( lStr , aArg1 );
2366  insert( lStr , aArg2 );
2367  insert( lStr , aArg3 );
2368  insert( lStr , aArg4 );
2369  insert( lStr , aArg5 );
2370  insert( lStr , aArg6 );
2371  insert( lStr , aArg7 );
2372  insert( lStr , aArg8 );
2373  insert( lStr , aArg9 );
2374  insert( lStr , aArg10 );
2375  insert( lStr , aArg11 );
2376  insert( lStr , aArg12 );
2377  insert( lStr , aArg13 );
2378  insert( lStr , aArg14 );
2379  insert( lStr , aArg15 );
2380  aWarning.tail();
2381  }
2382  #endif
2383  #endif
2384  #endif
2385 }
2386 
2387 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
2388 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
2389 {
2390  #ifndef LOGGING_EXCLUDE_FATAL
2391  #ifndef LOGGING_EXCLUDE_ERROR
2392  #ifndef LOGGING_EXCLUDE_WARNING
2393  if( LoggingIncludes( aWarning ) ){
2394  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2395  std::ostream& lStr( aWarning.stream() );
2396  aWarning.head();
2397  insert( lStr , aArg0 );
2398  insert( lStr , aArg1 );
2399  insert( lStr , aArg2 );
2400  insert( lStr , aArg3 );
2401  insert( lStr , aArg4 );
2402  insert( lStr , aArg5 );
2403  insert( lStr , aArg6 );
2404  insert( lStr , aArg7 );
2405  insert( lStr , aArg8 );
2406  insert( lStr , aArg9 );
2407  insert( lStr , aArg10 );
2408  insert( lStr , aArg11 );
2409  insert( lStr , aArg12 );
2410  insert( lStr , aArg13 );
2411  insert( lStr , aArg14 );
2412  insert( lStr , aArg15 );
2413  insert( lStr , aArg16 );
2414  aWarning.tail();
2415  }
2416  #endif
2417  #endif
2418  #endif
2419 }
2420 
2421 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
2422 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
2423 {
2424  #ifndef LOGGING_EXCLUDE_FATAL
2425  #ifndef LOGGING_EXCLUDE_ERROR
2426  #ifndef LOGGING_EXCLUDE_WARNING
2427  if( LoggingIncludes( aWarning ) ){
2428  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2429  std::ostream& lStr( aWarning.stream() );
2430  aWarning.head();
2431  insert( lStr , aArg0 );
2432  insert( lStr , aArg1 );
2433  insert( lStr , aArg2 );
2434  insert( lStr , aArg3 );
2435  insert( lStr , aArg4 );
2436  insert( lStr , aArg5 );
2437  insert( lStr , aArg6 );
2438  insert( lStr , aArg7 );
2439  insert( lStr , aArg8 );
2440  insert( lStr , aArg9 );
2441  insert( lStr , aArg10 );
2442  insert( lStr , aArg11 );
2443  insert( lStr , aArg12 );
2444  insert( lStr , aArg13 );
2445  insert( lStr , aArg14 );
2446  insert( lStr , aArg15 );
2447  insert( lStr , aArg16 );
2448  insert( lStr , aArg17 );
2449  aWarning.tail();
2450  }
2451  #endif
2452  #endif
2453  #endif
2454 }
2455 
2456 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
2457 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
2458 {
2459  #ifndef LOGGING_EXCLUDE_FATAL
2460  #ifndef LOGGING_EXCLUDE_ERROR
2461  #ifndef LOGGING_EXCLUDE_WARNING
2462  if( LoggingIncludes( aWarning ) ){
2463  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2464  std::ostream& lStr( aWarning.stream() );
2465  aWarning.head();
2466  insert( lStr , aArg0 );
2467  insert( lStr , aArg1 );
2468  insert( lStr , aArg2 );
2469  insert( lStr , aArg3 );
2470  insert( lStr , aArg4 );
2471  insert( lStr , aArg5 );
2472  insert( lStr , aArg6 );
2473  insert( lStr , aArg7 );
2474  insert( lStr , aArg8 );
2475  insert( lStr , aArg9 );
2476  insert( lStr , aArg10 );
2477  insert( lStr , aArg11 );
2478  insert( lStr , aArg12 );
2479  insert( lStr , aArg13 );
2480  insert( lStr , aArg14 );
2481  insert( lStr , aArg15 );
2482  insert( lStr , aArg16 );
2483  insert( lStr , aArg17 );
2484  insert( lStr , aArg18 );
2485  aWarning.tail();
2486  }
2487  #endif
2488  #endif
2489  #endif
2490 }
2491 
2492 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
2493 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
2494 {
2495  #ifndef LOGGING_EXCLUDE_FATAL
2496  #ifndef LOGGING_EXCLUDE_ERROR
2497  #ifndef LOGGING_EXCLUDE_WARNING
2498  if( LoggingIncludes( aWarning ) ){
2499  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2500  std::ostream& lStr( aWarning.stream() );
2501  aWarning.head();
2502  insert( lStr , aArg0 );
2503  insert( lStr , aArg1 );
2504  insert( lStr , aArg2 );
2505  insert( lStr , aArg3 );
2506  insert( lStr , aArg4 );
2507  insert( lStr , aArg5 );
2508  insert( lStr , aArg6 );
2509  insert( lStr , aArg7 );
2510  insert( lStr , aArg8 );
2511  insert( lStr , aArg9 );
2512  insert( lStr , aArg10 );
2513  insert( lStr , aArg11 );
2514  insert( lStr , aArg12 );
2515  insert( lStr , aArg13 );
2516  insert( lStr , aArg14 );
2517  insert( lStr , aArg15 );
2518  insert( lStr , aArg16 );
2519  insert( lStr , aArg17 );
2520  insert( lStr , aArg18 );
2521  insert( lStr , aArg19 );
2522  aWarning.tail();
2523  }
2524  #endif
2525  #endif
2526  #endif
2527 }
2528 
2529 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
2530 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
2531 {
2532  #ifndef LOGGING_EXCLUDE_FATAL
2533  #ifndef LOGGING_EXCLUDE_ERROR
2534  #ifndef LOGGING_EXCLUDE_WARNING
2535  if( LoggingIncludes( aWarning ) ){
2536  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2537  std::ostream& lStr( aWarning.stream() );
2538  aWarning.head();
2539  insert( lStr , aArg0 );
2540  insert( lStr , aArg1 );
2541  insert( lStr , aArg2 );
2542  insert( lStr , aArg3 );
2543  insert( lStr , aArg4 );
2544  insert( lStr , aArg5 );
2545  insert( lStr , aArg6 );
2546  insert( lStr , aArg7 );
2547  insert( lStr , aArg8 );
2548  insert( lStr , aArg9 );
2549  insert( lStr , aArg10 );
2550  insert( lStr , aArg11 );
2551  insert( lStr , aArg12 );
2552  insert( lStr , aArg13 );
2553  insert( lStr , aArg14 );
2554  insert( lStr , aArg15 );
2555  insert( lStr , aArg16 );
2556  insert( lStr , aArg17 );
2557  insert( lStr , aArg18 );
2558  insert( lStr , aArg19 );
2559  insert( lStr , aArg20 );
2560  aWarning.tail();
2561  }
2562  #endif
2563  #endif
2564  #endif
2565 }
2566 
2567 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
2568 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
2569 {
2570  #ifndef LOGGING_EXCLUDE_FATAL
2571  #ifndef LOGGING_EXCLUDE_ERROR
2572  #ifndef LOGGING_EXCLUDE_WARNING
2573  if( LoggingIncludes( aWarning ) ){
2574  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2575  std::ostream& lStr( aWarning.stream() );
2576  aWarning.head();
2577  insert( lStr , aArg0 );
2578  insert( lStr , aArg1 );
2579  insert( lStr , aArg2 );
2580  insert( lStr , aArg3 );
2581  insert( lStr , aArg4 );
2582  insert( lStr , aArg5 );
2583  insert( lStr , aArg6 );
2584  insert( lStr , aArg7 );
2585  insert( lStr , aArg8 );
2586  insert( lStr , aArg9 );
2587  insert( lStr , aArg10 );
2588  insert( lStr , aArg11 );
2589  insert( lStr , aArg12 );
2590  insert( lStr , aArg13 );
2591  insert( lStr , aArg14 );
2592  insert( lStr , aArg15 );
2593  insert( lStr , aArg16 );
2594  insert( lStr , aArg17 );
2595  insert( lStr , aArg18 );
2596  insert( lStr , aArg19 );
2597  insert( lStr , aArg20 );
2598  insert( lStr , aArg21 );
2599  aWarning.tail();
2600  }
2601  #endif
2602  #endif
2603  #endif
2604 }
2605 
2606 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
2607 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
2608 {
2609  #ifndef LOGGING_EXCLUDE_FATAL
2610  #ifndef LOGGING_EXCLUDE_ERROR
2611  #ifndef LOGGING_EXCLUDE_WARNING
2612  if( LoggingIncludes( aWarning ) ){
2613  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2614  std::ostream& lStr( aWarning.stream() );
2615  aWarning.head();
2616  insert( lStr , aArg0 );
2617  insert( lStr , aArg1 );
2618  insert( lStr , aArg2 );
2619  insert( lStr , aArg3 );
2620  insert( lStr , aArg4 );
2621  insert( lStr , aArg5 );
2622  insert( lStr , aArg6 );
2623  insert( lStr , aArg7 );
2624  insert( lStr , aArg8 );
2625  insert( lStr , aArg9 );
2626  insert( lStr , aArg10 );
2627  insert( lStr , aArg11 );
2628  insert( lStr , aArg12 );
2629  insert( lStr , aArg13 );
2630  insert( lStr , aArg14 );
2631  insert( lStr , aArg15 );
2632  insert( lStr , aArg16 );
2633  insert( lStr , aArg17 );
2634  insert( lStr , aArg18 );
2635  insert( lStr , aArg19 );
2636  insert( lStr , aArg20 );
2637  insert( lStr , aArg21 );
2638  insert( lStr , aArg22 );
2639  aWarning.tail();
2640  }
2641  #endif
2642  #endif
2643  #endif
2644 }
2645 
2646 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
2647 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
2648 {
2649  #ifndef LOGGING_EXCLUDE_FATAL
2650  #ifndef LOGGING_EXCLUDE_ERROR
2651  #ifndef LOGGING_EXCLUDE_WARNING
2652  if( LoggingIncludes( aWarning ) ){
2653  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2654  std::ostream& lStr( aWarning.stream() );
2655  aWarning.head();
2656  insert( lStr , aArg0 );
2657  insert( lStr , aArg1 );
2658  insert( lStr , aArg2 );
2659  insert( lStr , aArg3 );
2660  insert( lStr , aArg4 );
2661  insert( lStr , aArg5 );
2662  insert( lStr , aArg6 );
2663  insert( lStr , aArg7 );
2664  insert( lStr , aArg8 );
2665  insert( lStr , aArg9 );
2666  insert( lStr , aArg10 );
2667  insert( lStr , aArg11 );
2668  insert( lStr , aArg12 );
2669  insert( lStr , aArg13 );
2670  insert( lStr , aArg14 );
2671  insert( lStr , aArg15 );
2672  insert( lStr , aArg16 );
2673  insert( lStr , aArg17 );
2674  insert( lStr , aArg18 );
2675  insert( lStr , aArg19 );
2676  insert( lStr , aArg20 );
2677  insert( lStr , aArg21 );
2678  insert( lStr , aArg22 );
2679  insert( lStr , aArg23 );
2680  aWarning.tail();
2681  }
2682  #endif
2683  #endif
2684  #endif
2685 }
2686 
2687 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
2688 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
2689 {
2690  #ifndef LOGGING_EXCLUDE_FATAL
2691  #ifndef LOGGING_EXCLUDE_ERROR
2692  #ifndef LOGGING_EXCLUDE_WARNING
2693  if( LoggingIncludes( aWarning ) ){
2694  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2695  std::ostream& lStr( aWarning.stream() );
2696  aWarning.head();
2697  insert( lStr , aArg0 );
2698  insert( lStr , aArg1 );
2699  insert( lStr , aArg2 );
2700  insert( lStr , aArg3 );
2701  insert( lStr , aArg4 );
2702  insert( lStr , aArg5 );
2703  insert( lStr , aArg6 );
2704  insert( lStr , aArg7 );
2705  insert( lStr , aArg8 );
2706  insert( lStr , aArg9 );
2707  insert( lStr , aArg10 );
2708  insert( lStr , aArg11 );
2709  insert( lStr , aArg12 );
2710  insert( lStr , aArg13 );
2711  insert( lStr , aArg14 );
2712  insert( lStr , aArg15 );
2713  insert( lStr , aArg16 );
2714  insert( lStr , aArg17 );
2715  insert( lStr , aArg18 );
2716  insert( lStr , aArg19 );
2717  insert( lStr , aArg20 );
2718  insert( lStr , aArg21 );
2719  insert( lStr , aArg22 );
2720  insert( lStr , aArg23 );
2721  insert( lStr , aArg24 );
2722  aWarning.tail();
2723  }
2724  #endif
2725  #endif
2726  #endif
2727 }
2728 
2729 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
2730 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
2731 {
2732  #ifndef LOGGING_EXCLUDE_FATAL
2733  #ifndef LOGGING_EXCLUDE_ERROR
2734  #ifndef LOGGING_EXCLUDE_WARNING
2735  if( LoggingIncludes( aWarning ) ){
2736  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2737  std::ostream& lStr( aWarning.stream() );
2738  aWarning.head();
2739  insert( lStr , aArg0 );
2740  insert( lStr , aArg1 );
2741  insert( lStr , aArg2 );
2742  insert( lStr , aArg3 );
2743  insert( lStr , aArg4 );
2744  insert( lStr , aArg5 );
2745  insert( lStr , aArg6 );
2746  insert( lStr , aArg7 );
2747  insert( lStr , aArg8 );
2748  insert( lStr , aArg9 );
2749  insert( lStr , aArg10 );
2750  insert( lStr , aArg11 );
2751  insert( lStr , aArg12 );
2752  insert( lStr , aArg13 );
2753  insert( lStr , aArg14 );
2754  insert( lStr , aArg15 );
2755  insert( lStr , aArg16 );
2756  insert( lStr , aArg17 );
2757  insert( lStr , aArg18 );
2758  insert( lStr , aArg19 );
2759  insert( lStr , aArg20 );
2760  insert( lStr , aArg21 );
2761  insert( lStr , aArg22 );
2762  insert( lStr , aArg23 );
2763  insert( lStr , aArg24 );
2764  insert( lStr , aArg25 );
2765  aWarning.tail();
2766  }
2767  #endif
2768  #endif
2769  #endif
2770 }
2771 
2772 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
2773 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
2774 {
2775  #ifndef LOGGING_EXCLUDE_FATAL
2776  #ifndef LOGGING_EXCLUDE_ERROR
2777  #ifndef LOGGING_EXCLUDE_WARNING
2778  if( LoggingIncludes( aWarning ) ){
2779  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2780  std::ostream& lStr( aWarning.stream() );
2781  aWarning.head();
2782  insert( lStr , aArg0 );
2783  insert( lStr , aArg1 );
2784  insert( lStr , aArg2 );
2785  insert( lStr , aArg3 );
2786  insert( lStr , aArg4 );
2787  insert( lStr , aArg5 );
2788  insert( lStr , aArg6 );
2789  insert( lStr , aArg7 );
2790  insert( lStr , aArg8 );
2791  insert( lStr , aArg9 );
2792  insert( lStr , aArg10 );
2793  insert( lStr , aArg11 );
2794  insert( lStr , aArg12 );
2795  insert( lStr , aArg13 );
2796  insert( lStr , aArg14 );
2797  insert( lStr , aArg15 );
2798  insert( lStr , aArg16 );
2799  insert( lStr , aArg17 );
2800  insert( lStr , aArg18 );
2801  insert( lStr , aArg19 );
2802  insert( lStr , aArg20 );
2803  insert( lStr , aArg21 );
2804  insert( lStr , aArg22 );
2805  insert( lStr , aArg23 );
2806  insert( lStr , aArg24 );
2807  insert( lStr , aArg25 );
2808  insert( lStr , aArg26 );
2809  aWarning.tail();
2810  }
2811  #endif
2812  #endif
2813  #endif
2814 }
2815 
2816 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
2817 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
2818 {
2819  #ifndef LOGGING_EXCLUDE_FATAL
2820  #ifndef LOGGING_EXCLUDE_ERROR
2821  #ifndef LOGGING_EXCLUDE_WARNING
2822  if( LoggingIncludes( aWarning ) ){
2823  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2824  std::ostream& lStr( aWarning.stream() );
2825  aWarning.head();
2826  insert( lStr , aArg0 );
2827  insert( lStr , aArg1 );
2828  insert( lStr , aArg2 );
2829  insert( lStr , aArg3 );
2830  insert( lStr , aArg4 );
2831  insert( lStr , aArg5 );
2832  insert( lStr , aArg6 );
2833  insert( lStr , aArg7 );
2834  insert( lStr , aArg8 );
2835  insert( lStr , aArg9 );
2836  insert( lStr , aArg10 );
2837  insert( lStr , aArg11 );
2838  insert( lStr , aArg12 );
2839  insert( lStr , aArg13 );
2840  insert( lStr , aArg14 );
2841  insert( lStr , aArg15 );
2842  insert( lStr , aArg16 );
2843  insert( lStr , aArg17 );
2844  insert( lStr , aArg18 );
2845  insert( lStr , aArg19 );
2846  insert( lStr , aArg20 );
2847  insert( lStr , aArg21 );
2848  insert( lStr , aArg22 );
2849  insert( lStr , aArg23 );
2850  insert( lStr , aArg24 );
2851  insert( lStr , aArg25 );
2852  insert( lStr , aArg26 );
2853  insert( lStr , aArg27 );
2854  aWarning.tail();
2855  }
2856  #endif
2857  #endif
2858  #endif
2859 }
2860 
2861 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
2862 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
2863 {
2864  #ifndef LOGGING_EXCLUDE_FATAL
2865  #ifndef LOGGING_EXCLUDE_ERROR
2866  #ifndef LOGGING_EXCLUDE_WARNING
2867  if( LoggingIncludes( aWarning ) ){
2868  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2869  std::ostream& lStr( aWarning.stream() );
2870  aWarning.head();
2871  insert( lStr , aArg0 );
2872  insert( lStr , aArg1 );
2873  insert( lStr , aArg2 );
2874  insert( lStr , aArg3 );
2875  insert( lStr , aArg4 );
2876  insert( lStr , aArg5 );
2877  insert( lStr , aArg6 );
2878  insert( lStr , aArg7 );
2879  insert( lStr , aArg8 );
2880  insert( lStr , aArg9 );
2881  insert( lStr , aArg10 );
2882  insert( lStr , aArg11 );
2883  insert( lStr , aArg12 );
2884  insert( lStr , aArg13 );
2885  insert( lStr , aArg14 );
2886  insert( lStr , aArg15 );
2887  insert( lStr , aArg16 );
2888  insert( lStr , aArg17 );
2889  insert( lStr , aArg18 );
2890  insert( lStr , aArg19 );
2891  insert( lStr , aArg20 );
2892  insert( lStr , aArg21 );
2893  insert( lStr , aArg22 );
2894  insert( lStr , aArg23 );
2895  insert( lStr , aArg24 );
2896  insert( lStr , aArg25 );
2897  insert( lStr , aArg26 );
2898  insert( lStr , aArg27 );
2899  insert( lStr , aArg28 );
2900  aWarning.tail();
2901  }
2902  #endif
2903  #endif
2904  #endif
2905 }
2906 
2907 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
2908 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
2909 {
2910  #ifndef LOGGING_EXCLUDE_FATAL
2911  #ifndef LOGGING_EXCLUDE_ERROR
2912  #ifndef LOGGING_EXCLUDE_WARNING
2913  if( LoggingIncludes( aWarning ) ){
2914  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2915  std::ostream& lStr( aWarning.stream() );
2916  aWarning.head();
2917  insert( lStr , aArg0 );
2918  insert( lStr , aArg1 );
2919  insert( lStr , aArg2 );
2920  insert( lStr , aArg3 );
2921  insert( lStr , aArg4 );
2922  insert( lStr , aArg5 );
2923  insert( lStr , aArg6 );
2924  insert( lStr , aArg7 );
2925  insert( lStr , aArg8 );
2926  insert( lStr , aArg9 );
2927  insert( lStr , aArg10 );
2928  insert( lStr , aArg11 );
2929  insert( lStr , aArg12 );
2930  insert( lStr , aArg13 );
2931  insert( lStr , aArg14 );
2932  insert( lStr , aArg15 );
2933  insert( lStr , aArg16 );
2934  insert( lStr , aArg17 );
2935  insert( lStr , aArg18 );
2936  insert( lStr , aArg19 );
2937  insert( lStr , aArg20 );
2938  insert( lStr , aArg21 );
2939  insert( lStr , aArg22 );
2940  insert( lStr , aArg23 );
2941  insert( lStr , aArg24 );
2942  insert( lStr , aArg25 );
2943  insert( lStr , aArg26 );
2944  insert( lStr , aArg27 );
2945  insert( lStr , aArg28 );
2946  insert( lStr , aArg29 );
2947  aWarning.tail();
2948  }
2949  #endif
2950  #endif
2951  #endif
2952 }
2953 
2954 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
2955 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
2956 {
2957  #ifndef LOGGING_EXCLUDE_FATAL
2958  #ifndef LOGGING_EXCLUDE_ERROR
2959  #ifndef LOGGING_EXCLUDE_WARNING
2960  if( LoggingIncludes( aWarning ) ){
2961  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
2962  std::ostream& lStr( aWarning.stream() );
2963  aWarning.head();
2964  insert( lStr , aArg0 );
2965  insert( lStr , aArg1 );
2966  insert( lStr , aArg2 );
2967  insert( lStr , aArg3 );
2968  insert( lStr , aArg4 );
2969  insert( lStr , aArg5 );
2970  insert( lStr , aArg6 );
2971  insert( lStr , aArg7 );
2972  insert( lStr , aArg8 );
2973  insert( lStr , aArg9 );
2974  insert( lStr , aArg10 );
2975  insert( lStr , aArg11 );
2976  insert( lStr , aArg12 );
2977  insert( lStr , aArg13 );
2978  insert( lStr , aArg14 );
2979  insert( lStr , aArg15 );
2980  insert( lStr , aArg16 );
2981  insert( lStr , aArg17 );
2982  insert( lStr , aArg18 );
2983  insert( lStr , aArg19 );
2984  insert( lStr , aArg20 );
2985  insert( lStr , aArg21 );
2986  insert( lStr , aArg22 );
2987  insert( lStr , aArg23 );
2988  insert( lStr , aArg24 );
2989  insert( lStr , aArg25 );
2990  insert( lStr , aArg26 );
2991  insert( lStr , aArg27 );
2992  insert( lStr , aArg28 );
2993  insert( lStr , aArg29 );
2994  insert( lStr , aArg30 );
2995  aWarning.tail();
2996  }
2997  #endif
2998  #endif
2999  #endif
3000 }
3001 
3002 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
3003 void log ( WarningLevel& aWarning , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
3004 {
3005  #ifndef LOGGING_EXCLUDE_FATAL
3006  #ifndef LOGGING_EXCLUDE_ERROR
3007  #ifndef LOGGING_EXCLUDE_WARNING
3008  if( LoggingIncludes( aWarning ) ){
3009  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3010  std::ostream& lStr( aWarning.stream() );
3011  aWarning.head();
3012  insert( lStr , aArg0 );
3013  insert( lStr , aArg1 );
3014  insert( lStr , aArg2 );
3015  insert( lStr , aArg3 );
3016  insert( lStr , aArg4 );
3017  insert( lStr , aArg5 );
3018  insert( lStr , aArg6 );
3019  insert( lStr , aArg7 );
3020  insert( lStr , aArg8 );
3021  insert( lStr , aArg9 );
3022  insert( lStr , aArg10 );
3023  insert( lStr , aArg11 );
3024  insert( lStr , aArg12 );
3025  insert( lStr , aArg13 );
3026  insert( lStr , aArg14 );
3027  insert( lStr , aArg15 );
3028  insert( lStr , aArg16 );
3029  insert( lStr , aArg17 );
3030  insert( lStr , aArg18 );
3031  insert( lStr , aArg19 );
3032  insert( lStr , aArg20 );
3033  insert( lStr , aArg21 );
3034  insert( lStr , aArg22 );
3035  insert( lStr , aArg23 );
3036  insert( lStr , aArg24 );
3037  insert( lStr , aArg25 );
3038  insert( lStr , aArg26 );
3039  insert( lStr , aArg27 );
3040  insert( lStr , aArg28 );
3041  insert( lStr , aArg29 );
3042  insert( lStr , aArg30 );
3043  insert( lStr , aArg31 );
3044  aWarning.tail();
3045  }
3046  #endif
3047  #endif
3048  #endif
3049 }
3050 
3051 // ======================================================================================================================================================
3052 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
3053 // ======================================================================================================================================================
3054 
3055 template< typename T0 >
3056 void log ( NoticeLevel& aNotice , const T0& aArg0 )
3057 {
3058  #ifndef LOGGING_EXCLUDE_FATAL
3059  #ifndef LOGGING_EXCLUDE_ERROR
3060  #ifndef LOGGING_EXCLUDE_WARNING
3061  #ifndef LOGGING_EXCLUDE_NOTICE
3062  if( LoggingIncludes( aNotice ) ){
3063  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3064  std::ostream& lStr( aNotice.stream() );
3065  aNotice.head();
3066  insert( lStr , aArg0 );
3067  aNotice.tail();
3068  }
3069  #endif
3070  #endif
3071  #endif
3072  #endif
3073 }
3074 
3075 template< typename T0 , typename T1 >
3076 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 )
3077 {
3078  #ifndef LOGGING_EXCLUDE_FATAL
3079  #ifndef LOGGING_EXCLUDE_ERROR
3080  #ifndef LOGGING_EXCLUDE_WARNING
3081  #ifndef LOGGING_EXCLUDE_NOTICE
3082  if( LoggingIncludes( aNotice ) ){
3083  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3084  std::ostream& lStr( aNotice.stream() );
3085  aNotice.head();
3086  insert( lStr , aArg0 );
3087  insert( lStr , aArg1 );
3088  aNotice.tail();
3089  }
3090  #endif
3091  #endif
3092  #endif
3093  #endif
3094 }
3095 
3096 template< typename T0 , typename T1 , typename T2 >
3097 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
3098 {
3099  #ifndef LOGGING_EXCLUDE_FATAL
3100  #ifndef LOGGING_EXCLUDE_ERROR
3101  #ifndef LOGGING_EXCLUDE_WARNING
3102  #ifndef LOGGING_EXCLUDE_NOTICE
3103  if( LoggingIncludes( aNotice ) ){
3104  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3105  std::ostream& lStr( aNotice.stream() );
3106  aNotice.head();
3107  insert( lStr , aArg0 );
3108  insert( lStr , aArg1 );
3109  insert( lStr , aArg2 );
3110  aNotice.tail();
3111  }
3112  #endif
3113  #endif
3114  #endif
3115  #endif
3116 }
3117 
3118 template< typename T0 , typename T1 , typename T2 , typename T3 >
3119 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
3120 {
3121  #ifndef LOGGING_EXCLUDE_FATAL
3122  #ifndef LOGGING_EXCLUDE_ERROR
3123  #ifndef LOGGING_EXCLUDE_WARNING
3124  #ifndef LOGGING_EXCLUDE_NOTICE
3125  if( LoggingIncludes( aNotice ) ){
3126  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3127  std::ostream& lStr( aNotice.stream() );
3128  aNotice.head();
3129  insert( lStr , aArg0 );
3130  insert( lStr , aArg1 );
3131  insert( lStr , aArg2 );
3132  insert( lStr , aArg3 );
3133  aNotice.tail();
3134  }
3135  #endif
3136  #endif
3137  #endif
3138  #endif
3139 }
3140 
3141 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
3142 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
3143 {
3144  #ifndef LOGGING_EXCLUDE_FATAL
3145  #ifndef LOGGING_EXCLUDE_ERROR
3146  #ifndef LOGGING_EXCLUDE_WARNING
3147  #ifndef LOGGING_EXCLUDE_NOTICE
3148  if( LoggingIncludes( aNotice ) ){
3149  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3150  std::ostream& lStr( aNotice.stream() );
3151  aNotice.head();
3152  insert( lStr , aArg0 );
3153  insert( lStr , aArg1 );
3154  insert( lStr , aArg2 );
3155  insert( lStr , aArg3 );
3156  insert( lStr , aArg4 );
3157  aNotice.tail();
3158  }
3159  #endif
3160  #endif
3161  #endif
3162  #endif
3163 }
3164 
3165 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
3166 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
3167 {
3168  #ifndef LOGGING_EXCLUDE_FATAL
3169  #ifndef LOGGING_EXCLUDE_ERROR
3170  #ifndef LOGGING_EXCLUDE_WARNING
3171  #ifndef LOGGING_EXCLUDE_NOTICE
3172  if( LoggingIncludes( aNotice ) ){
3173  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3174  std::ostream& lStr( aNotice.stream() );
3175  aNotice.head();
3176  insert( lStr , aArg0 );
3177  insert( lStr , aArg1 );
3178  insert( lStr , aArg2 );
3179  insert( lStr , aArg3 );
3180  insert( lStr , aArg4 );
3181  insert( lStr , aArg5 );
3182  aNotice.tail();
3183  }
3184  #endif
3185  #endif
3186  #endif
3187  #endif
3188 }
3189 
3190 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
3191 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
3192 {
3193  #ifndef LOGGING_EXCLUDE_FATAL
3194  #ifndef LOGGING_EXCLUDE_ERROR
3195  #ifndef LOGGING_EXCLUDE_WARNING
3196  #ifndef LOGGING_EXCLUDE_NOTICE
3197  if( LoggingIncludes( aNotice ) ){
3198  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3199  std::ostream& lStr( aNotice.stream() );
3200  aNotice.head();
3201  insert( lStr , aArg0 );
3202  insert( lStr , aArg1 );
3203  insert( lStr , aArg2 );
3204  insert( lStr , aArg3 );
3205  insert( lStr , aArg4 );
3206  insert( lStr , aArg5 );
3207  insert( lStr , aArg6 );
3208  aNotice.tail();
3209  }
3210  #endif
3211  #endif
3212  #endif
3213  #endif
3214 }
3215 
3216 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
3217 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
3218 {
3219  #ifndef LOGGING_EXCLUDE_FATAL
3220  #ifndef LOGGING_EXCLUDE_ERROR
3221  #ifndef LOGGING_EXCLUDE_WARNING
3222  #ifndef LOGGING_EXCLUDE_NOTICE
3223  if( LoggingIncludes( aNotice ) ){
3224  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3225  std::ostream& lStr( aNotice.stream() );
3226  aNotice.head();
3227  insert( lStr , aArg0 );
3228  insert( lStr , aArg1 );
3229  insert( lStr , aArg2 );
3230  insert( lStr , aArg3 );
3231  insert( lStr , aArg4 );
3232  insert( lStr , aArg5 );
3233  insert( lStr , aArg6 );
3234  insert( lStr , aArg7 );
3235  aNotice.tail();
3236  }
3237  #endif
3238  #endif
3239  #endif
3240  #endif
3241 }
3242 
3243 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
3244 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
3245 {
3246  #ifndef LOGGING_EXCLUDE_FATAL
3247  #ifndef LOGGING_EXCLUDE_ERROR
3248  #ifndef LOGGING_EXCLUDE_WARNING
3249  #ifndef LOGGING_EXCLUDE_NOTICE
3250  if( LoggingIncludes( aNotice ) ){
3251  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3252  std::ostream& lStr( aNotice.stream() );
3253  aNotice.head();
3254  insert( lStr , aArg0 );
3255  insert( lStr , aArg1 );
3256  insert( lStr , aArg2 );
3257  insert( lStr , aArg3 );
3258  insert( lStr , aArg4 );
3259  insert( lStr , aArg5 );
3260  insert( lStr , aArg6 );
3261  insert( lStr , aArg7 );
3262  insert( lStr , aArg8 );
3263  aNotice.tail();
3264  }
3265  #endif
3266  #endif
3267  #endif
3268  #endif
3269 }
3270 
3271 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
3272 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
3273 {
3274  #ifndef LOGGING_EXCLUDE_FATAL
3275  #ifndef LOGGING_EXCLUDE_ERROR
3276  #ifndef LOGGING_EXCLUDE_WARNING
3277  #ifndef LOGGING_EXCLUDE_NOTICE
3278  if( LoggingIncludes( aNotice ) ){
3279  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3280  std::ostream& lStr( aNotice.stream() );
3281  aNotice.head();
3282  insert( lStr , aArg0 );
3283  insert( lStr , aArg1 );
3284  insert( lStr , aArg2 );
3285  insert( lStr , aArg3 );
3286  insert( lStr , aArg4 );
3287  insert( lStr , aArg5 );
3288  insert( lStr , aArg6 );
3289  insert( lStr , aArg7 );
3290  insert( lStr , aArg8 );
3291  insert( lStr , aArg9 );
3292  aNotice.tail();
3293  }
3294  #endif
3295  #endif
3296  #endif
3297  #endif
3298 }
3299 
3300 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
3301 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
3302 {
3303  #ifndef LOGGING_EXCLUDE_FATAL
3304  #ifndef LOGGING_EXCLUDE_ERROR
3305  #ifndef LOGGING_EXCLUDE_WARNING
3306  #ifndef LOGGING_EXCLUDE_NOTICE
3307  if( LoggingIncludes( aNotice ) ){
3308  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3309  std::ostream& lStr( aNotice.stream() );
3310  aNotice.head();
3311  insert( lStr , aArg0 );
3312  insert( lStr , aArg1 );
3313  insert( lStr , aArg2 );
3314  insert( lStr , aArg3 );
3315  insert( lStr , aArg4 );
3316  insert( lStr , aArg5 );
3317  insert( lStr , aArg6 );
3318  insert( lStr , aArg7 );
3319  insert( lStr , aArg8 );
3320  insert( lStr , aArg9 );
3321  insert( lStr , aArg10 );
3322  aNotice.tail();
3323  }
3324  #endif
3325  #endif
3326  #endif
3327  #endif
3328 }
3329 
3330 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
3331 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
3332 {
3333  #ifndef LOGGING_EXCLUDE_FATAL
3334  #ifndef LOGGING_EXCLUDE_ERROR
3335  #ifndef LOGGING_EXCLUDE_WARNING
3336  #ifndef LOGGING_EXCLUDE_NOTICE
3337  if( LoggingIncludes( aNotice ) ){
3338  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3339  std::ostream& lStr( aNotice.stream() );
3340  aNotice.head();
3341  insert( lStr , aArg0 );
3342  insert( lStr , aArg1 );
3343  insert( lStr , aArg2 );
3344  insert( lStr , aArg3 );
3345  insert( lStr , aArg4 );
3346  insert( lStr , aArg5 );
3347  insert( lStr , aArg6 );
3348  insert( lStr , aArg7 );
3349  insert( lStr , aArg8 );
3350  insert( lStr , aArg9 );
3351  insert( lStr , aArg10 );
3352  insert( lStr , aArg11 );
3353  aNotice.tail();
3354  }
3355  #endif
3356  #endif
3357  #endif
3358  #endif
3359 }
3360 
3361 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
3362 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
3363 {
3364  #ifndef LOGGING_EXCLUDE_FATAL
3365  #ifndef LOGGING_EXCLUDE_ERROR
3366  #ifndef LOGGING_EXCLUDE_WARNING
3367  #ifndef LOGGING_EXCLUDE_NOTICE
3368  if( LoggingIncludes( aNotice ) ){
3369  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3370  std::ostream& lStr( aNotice.stream() );
3371  aNotice.head();
3372  insert( lStr , aArg0 );
3373  insert( lStr , aArg1 );
3374  insert( lStr , aArg2 );
3375  insert( lStr , aArg3 );
3376  insert( lStr , aArg4 );
3377  insert( lStr , aArg5 );
3378  insert( lStr , aArg6 );
3379  insert( lStr , aArg7 );
3380  insert( lStr , aArg8 );
3381  insert( lStr , aArg9 );
3382  insert( lStr , aArg10 );
3383  insert( lStr , aArg11 );
3384  insert( lStr , aArg12 );
3385  aNotice.tail();
3386  }
3387  #endif
3388  #endif
3389  #endif
3390  #endif
3391 }
3392 
3393 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
3394 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
3395 {
3396  #ifndef LOGGING_EXCLUDE_FATAL
3397  #ifndef LOGGING_EXCLUDE_ERROR
3398  #ifndef LOGGING_EXCLUDE_WARNING
3399  #ifndef LOGGING_EXCLUDE_NOTICE
3400  if( LoggingIncludes( aNotice ) ){
3401  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3402  std::ostream& lStr( aNotice.stream() );
3403  aNotice.head();
3404  insert( lStr , aArg0 );
3405  insert( lStr , aArg1 );
3406  insert( lStr , aArg2 );
3407  insert( lStr , aArg3 );
3408  insert( lStr , aArg4 );
3409  insert( lStr , aArg5 );
3410  insert( lStr , aArg6 );
3411  insert( lStr , aArg7 );
3412  insert( lStr , aArg8 );
3413  insert( lStr , aArg9 );
3414  insert( lStr , aArg10 );
3415  insert( lStr , aArg11 );
3416  insert( lStr , aArg12 );
3417  insert( lStr , aArg13 );
3418  aNotice.tail();
3419  }
3420  #endif
3421  #endif
3422  #endif
3423  #endif
3424 }
3425 
3426 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
3427 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
3428 {
3429  #ifndef LOGGING_EXCLUDE_FATAL
3430  #ifndef LOGGING_EXCLUDE_ERROR
3431  #ifndef LOGGING_EXCLUDE_WARNING
3432  #ifndef LOGGING_EXCLUDE_NOTICE
3433  if( LoggingIncludes( aNotice ) ){
3434  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3435  std::ostream& lStr( aNotice.stream() );
3436  aNotice.head();
3437  insert( lStr , aArg0 );
3438  insert( lStr , aArg1 );
3439  insert( lStr , aArg2 );
3440  insert( lStr , aArg3 );
3441  insert( lStr , aArg4 );
3442  insert( lStr , aArg5 );
3443  insert( lStr , aArg6 );
3444  insert( lStr , aArg7 );
3445  insert( lStr , aArg8 );
3446  insert( lStr , aArg9 );
3447  insert( lStr , aArg10 );
3448  insert( lStr , aArg11 );
3449  insert( lStr , aArg12 );
3450  insert( lStr , aArg13 );
3451  insert( lStr , aArg14 );
3452  aNotice.tail();
3453  }
3454  #endif
3455  #endif
3456  #endif
3457  #endif
3458 }
3459 
3460 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
3461 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
3462 {
3463  #ifndef LOGGING_EXCLUDE_FATAL
3464  #ifndef LOGGING_EXCLUDE_ERROR
3465  #ifndef LOGGING_EXCLUDE_WARNING
3466  #ifndef LOGGING_EXCLUDE_NOTICE
3467  if( LoggingIncludes( aNotice ) ){
3468  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3469  std::ostream& lStr( aNotice.stream() );
3470  aNotice.head();
3471  insert( lStr , aArg0 );
3472  insert( lStr , aArg1 );
3473  insert( lStr , aArg2 );
3474  insert( lStr , aArg3 );
3475  insert( lStr , aArg4 );
3476  insert( lStr , aArg5 );
3477  insert( lStr , aArg6 );
3478  insert( lStr , aArg7 );
3479  insert( lStr , aArg8 );
3480  insert( lStr , aArg9 );
3481  insert( lStr , aArg10 );
3482  insert( lStr , aArg11 );
3483  insert( lStr , aArg12 );
3484  insert( lStr , aArg13 );
3485  insert( lStr , aArg14 );
3486  insert( lStr , aArg15 );
3487  aNotice.tail();
3488  }
3489  #endif
3490  #endif
3491  #endif
3492  #endif
3493 }
3494 
3495 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
3496 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
3497 {
3498  #ifndef LOGGING_EXCLUDE_FATAL
3499  #ifndef LOGGING_EXCLUDE_ERROR
3500  #ifndef LOGGING_EXCLUDE_WARNING
3501  #ifndef LOGGING_EXCLUDE_NOTICE
3502  if( LoggingIncludes( aNotice ) ){
3503  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3504  std::ostream& lStr( aNotice.stream() );
3505  aNotice.head();
3506  insert( lStr , aArg0 );
3507  insert( lStr , aArg1 );
3508  insert( lStr , aArg2 );
3509  insert( lStr , aArg3 );
3510  insert( lStr , aArg4 );
3511  insert( lStr , aArg5 );
3512  insert( lStr , aArg6 );
3513  insert( lStr , aArg7 );
3514  insert( lStr , aArg8 );
3515  insert( lStr , aArg9 );
3516  insert( lStr , aArg10 );
3517  insert( lStr , aArg11 );
3518  insert( lStr , aArg12 );
3519  insert( lStr , aArg13 );
3520  insert( lStr , aArg14 );
3521  insert( lStr , aArg15 );
3522  insert( lStr , aArg16 );
3523  aNotice.tail();
3524  }
3525  #endif
3526  #endif
3527  #endif
3528  #endif
3529 }
3530 
3531 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
3532 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
3533 {
3534  #ifndef LOGGING_EXCLUDE_FATAL
3535  #ifndef LOGGING_EXCLUDE_ERROR
3536  #ifndef LOGGING_EXCLUDE_WARNING
3537  #ifndef LOGGING_EXCLUDE_NOTICE
3538  if( LoggingIncludes( aNotice ) ){
3539  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3540  std::ostream& lStr( aNotice.stream() );
3541  aNotice.head();
3542  insert( lStr , aArg0 );
3543  insert( lStr , aArg1 );
3544  insert( lStr , aArg2 );
3545  insert( lStr , aArg3 );
3546  insert( lStr , aArg4 );
3547  insert( lStr , aArg5 );
3548  insert( lStr , aArg6 );
3549  insert( lStr , aArg7 );
3550  insert( lStr , aArg8 );
3551  insert( lStr , aArg9 );
3552  insert( lStr , aArg10 );
3553  insert( lStr , aArg11 );
3554  insert( lStr , aArg12 );
3555  insert( lStr , aArg13 );
3556  insert( lStr , aArg14 );
3557  insert( lStr , aArg15 );
3558  insert( lStr , aArg16 );
3559  insert( lStr , aArg17 );
3560  aNotice.tail();
3561  }
3562  #endif
3563  #endif
3564  #endif
3565  #endif
3566 }
3567 
3568 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
3569 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
3570 {
3571  #ifndef LOGGING_EXCLUDE_FATAL
3572  #ifndef LOGGING_EXCLUDE_ERROR
3573  #ifndef LOGGING_EXCLUDE_WARNING
3574  #ifndef LOGGING_EXCLUDE_NOTICE
3575  if( LoggingIncludes( aNotice ) ){
3576  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3577  std::ostream& lStr( aNotice.stream() );
3578  aNotice.head();
3579  insert( lStr , aArg0 );
3580  insert( lStr , aArg1 );
3581  insert( lStr , aArg2 );
3582  insert( lStr , aArg3 );
3583  insert( lStr , aArg4 );
3584  insert( lStr , aArg5 );
3585  insert( lStr , aArg6 );
3586  insert( lStr , aArg7 );
3587  insert( lStr , aArg8 );
3588  insert( lStr , aArg9 );
3589  insert( lStr , aArg10 );
3590  insert( lStr , aArg11 );
3591  insert( lStr , aArg12 );
3592  insert( lStr , aArg13 );
3593  insert( lStr , aArg14 );
3594  insert( lStr , aArg15 );
3595  insert( lStr , aArg16 );
3596  insert( lStr , aArg17 );
3597  insert( lStr , aArg18 );
3598  aNotice.tail();
3599  }
3600  #endif
3601  #endif
3602  #endif
3603  #endif
3604 }
3605 
3606 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
3607 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
3608 {
3609  #ifndef LOGGING_EXCLUDE_FATAL
3610  #ifndef LOGGING_EXCLUDE_ERROR
3611  #ifndef LOGGING_EXCLUDE_WARNING
3612  #ifndef LOGGING_EXCLUDE_NOTICE
3613  if( LoggingIncludes( aNotice ) ){
3614  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3615  std::ostream& lStr( aNotice.stream() );
3616  aNotice.head();
3617  insert( lStr , aArg0 );
3618  insert( lStr , aArg1 );
3619  insert( lStr , aArg2 );
3620  insert( lStr , aArg3 );
3621  insert( lStr , aArg4 );
3622  insert( lStr , aArg5 );
3623  insert( lStr , aArg6 );
3624  insert( lStr , aArg7 );
3625  insert( lStr , aArg8 );
3626  insert( lStr , aArg9 );
3627  insert( lStr , aArg10 );
3628  insert( lStr , aArg11 );
3629  insert( lStr , aArg12 );
3630  insert( lStr , aArg13 );
3631  insert( lStr , aArg14 );
3632  insert( lStr , aArg15 );
3633  insert( lStr , aArg16 );
3634  insert( lStr , aArg17 );
3635  insert( lStr , aArg18 );
3636  insert( lStr , aArg19 );
3637  aNotice.tail();
3638  }
3639  #endif
3640  #endif
3641  #endif
3642  #endif
3643 }
3644 
3645 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
3646 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
3647 {
3648  #ifndef LOGGING_EXCLUDE_FATAL
3649  #ifndef LOGGING_EXCLUDE_ERROR
3650  #ifndef LOGGING_EXCLUDE_WARNING
3651  #ifndef LOGGING_EXCLUDE_NOTICE
3652  if( LoggingIncludes( aNotice ) ){
3653  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3654  std::ostream& lStr( aNotice.stream() );
3655  aNotice.head();
3656  insert( lStr , aArg0 );
3657  insert( lStr , aArg1 );
3658  insert( lStr , aArg2 );
3659  insert( lStr , aArg3 );
3660  insert( lStr , aArg4 );
3661  insert( lStr , aArg5 );
3662  insert( lStr , aArg6 );
3663  insert( lStr , aArg7 );
3664  insert( lStr , aArg8 );
3665  insert( lStr , aArg9 );
3666  insert( lStr , aArg10 );
3667  insert( lStr , aArg11 );
3668  insert( lStr , aArg12 );
3669  insert( lStr , aArg13 );
3670  insert( lStr , aArg14 );
3671  insert( lStr , aArg15 );
3672  insert( lStr , aArg16 );
3673  insert( lStr , aArg17 );
3674  insert( lStr , aArg18 );
3675  insert( lStr , aArg19 );
3676  insert( lStr , aArg20 );
3677  aNotice.tail();
3678  }
3679  #endif
3680  #endif
3681  #endif
3682  #endif
3683 }
3684 
3685 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
3686 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
3687 {
3688  #ifndef LOGGING_EXCLUDE_FATAL
3689  #ifndef LOGGING_EXCLUDE_ERROR
3690  #ifndef LOGGING_EXCLUDE_WARNING
3691  #ifndef LOGGING_EXCLUDE_NOTICE
3692  if( LoggingIncludes( aNotice ) ){
3693  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3694  std::ostream& lStr( aNotice.stream() );
3695  aNotice.head();
3696  insert( lStr , aArg0 );
3697  insert( lStr , aArg1 );
3698  insert( lStr , aArg2 );
3699  insert( lStr , aArg3 );
3700  insert( lStr , aArg4 );
3701  insert( lStr , aArg5 );
3702  insert( lStr , aArg6 );
3703  insert( lStr , aArg7 );
3704  insert( lStr , aArg8 );
3705  insert( lStr , aArg9 );
3706  insert( lStr , aArg10 );
3707  insert( lStr , aArg11 );
3708  insert( lStr , aArg12 );
3709  insert( lStr , aArg13 );
3710  insert( lStr , aArg14 );
3711  insert( lStr , aArg15 );
3712  insert( lStr , aArg16 );
3713  insert( lStr , aArg17 );
3714  insert( lStr , aArg18 );
3715  insert( lStr , aArg19 );
3716  insert( lStr , aArg20 );
3717  insert( lStr , aArg21 );
3718  aNotice.tail();
3719  }
3720  #endif
3721  #endif
3722  #endif
3723  #endif
3724 }
3725 
3726 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
3727 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
3728 {
3729  #ifndef LOGGING_EXCLUDE_FATAL
3730  #ifndef LOGGING_EXCLUDE_ERROR
3731  #ifndef LOGGING_EXCLUDE_WARNING
3732  #ifndef LOGGING_EXCLUDE_NOTICE
3733  if( LoggingIncludes( aNotice ) ){
3734  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3735  std::ostream& lStr( aNotice.stream() );
3736  aNotice.head();
3737  insert( lStr , aArg0 );
3738  insert( lStr , aArg1 );
3739  insert( lStr , aArg2 );
3740  insert( lStr , aArg3 );
3741  insert( lStr , aArg4 );
3742  insert( lStr , aArg5 );
3743  insert( lStr , aArg6 );
3744  insert( lStr , aArg7 );
3745  insert( lStr , aArg8 );
3746  insert( lStr , aArg9 );
3747  insert( lStr , aArg10 );
3748  insert( lStr , aArg11 );
3749  insert( lStr , aArg12 );
3750  insert( lStr , aArg13 );
3751  insert( lStr , aArg14 );
3752  insert( lStr , aArg15 );
3753  insert( lStr , aArg16 );
3754  insert( lStr , aArg17 );
3755  insert( lStr , aArg18 );
3756  insert( lStr , aArg19 );
3757  insert( lStr , aArg20 );
3758  insert( lStr , aArg21 );
3759  insert( lStr , aArg22 );
3760  aNotice.tail();
3761  }
3762  #endif
3763  #endif
3764  #endif
3765  #endif
3766 }
3767 
3768 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
3769 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
3770 {
3771  #ifndef LOGGING_EXCLUDE_FATAL
3772  #ifndef LOGGING_EXCLUDE_ERROR
3773  #ifndef LOGGING_EXCLUDE_WARNING
3774  #ifndef LOGGING_EXCLUDE_NOTICE
3775  if( LoggingIncludes( aNotice ) ){
3776  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3777  std::ostream& lStr( aNotice.stream() );
3778  aNotice.head();
3779  insert( lStr , aArg0 );
3780  insert( lStr , aArg1 );
3781  insert( lStr , aArg2 );
3782  insert( lStr , aArg3 );
3783  insert( lStr , aArg4 );
3784  insert( lStr , aArg5 );
3785  insert( lStr , aArg6 );
3786  insert( lStr , aArg7 );
3787  insert( lStr , aArg8 );
3788  insert( lStr , aArg9 );
3789  insert( lStr , aArg10 );
3790  insert( lStr , aArg11 );
3791  insert( lStr , aArg12 );
3792  insert( lStr , aArg13 );
3793  insert( lStr , aArg14 );
3794  insert( lStr , aArg15 );
3795  insert( lStr , aArg16 );
3796  insert( lStr , aArg17 );
3797  insert( lStr , aArg18 );
3798  insert( lStr , aArg19 );
3799  insert( lStr , aArg20 );
3800  insert( lStr , aArg21 );
3801  insert( lStr , aArg22 );
3802  insert( lStr , aArg23 );
3803  aNotice.tail();
3804  }
3805  #endif
3806  #endif
3807  #endif
3808  #endif
3809 }
3810 
3811 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
3812 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
3813 {
3814  #ifndef LOGGING_EXCLUDE_FATAL
3815  #ifndef LOGGING_EXCLUDE_ERROR
3816  #ifndef LOGGING_EXCLUDE_WARNING
3817  #ifndef LOGGING_EXCLUDE_NOTICE
3818  if( LoggingIncludes( aNotice ) ){
3819  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3820  std::ostream& lStr( aNotice.stream() );
3821  aNotice.head();
3822  insert( lStr , aArg0 );
3823  insert( lStr , aArg1 );
3824  insert( lStr , aArg2 );
3825  insert( lStr , aArg3 );
3826  insert( lStr , aArg4 );
3827  insert( lStr , aArg5 );
3828  insert( lStr , aArg6 );
3829  insert( lStr , aArg7 );
3830  insert( lStr , aArg8 );
3831  insert( lStr , aArg9 );
3832  insert( lStr , aArg10 );
3833  insert( lStr , aArg11 );
3834  insert( lStr , aArg12 );
3835  insert( lStr , aArg13 );
3836  insert( lStr , aArg14 );
3837  insert( lStr , aArg15 );
3838  insert( lStr , aArg16 );
3839  insert( lStr , aArg17 );
3840  insert( lStr , aArg18 );
3841  insert( lStr , aArg19 );
3842  insert( lStr , aArg20 );
3843  insert( lStr , aArg21 );
3844  insert( lStr , aArg22 );
3845  insert( lStr , aArg23 );
3846  insert( lStr , aArg24 );
3847  aNotice.tail();
3848  }
3849  #endif
3850  #endif
3851  #endif
3852  #endif
3853 }
3854 
3855 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
3856 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
3857 {
3858  #ifndef LOGGING_EXCLUDE_FATAL
3859  #ifndef LOGGING_EXCLUDE_ERROR
3860  #ifndef LOGGING_EXCLUDE_WARNING
3861  #ifndef LOGGING_EXCLUDE_NOTICE
3862  if( LoggingIncludes( aNotice ) ){
3863  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3864  std::ostream& lStr( aNotice.stream() );
3865  aNotice.head();
3866  insert( lStr , aArg0 );
3867  insert( lStr , aArg1 );
3868  insert( lStr , aArg2 );
3869  insert( lStr , aArg3 );
3870  insert( lStr , aArg4 );
3871  insert( lStr , aArg5 );
3872  insert( lStr , aArg6 );
3873  insert( lStr , aArg7 );
3874  insert( lStr , aArg8 );
3875  insert( lStr , aArg9 );
3876  insert( lStr , aArg10 );
3877  insert( lStr , aArg11 );
3878  insert( lStr , aArg12 );
3879  insert( lStr , aArg13 );
3880  insert( lStr , aArg14 );
3881  insert( lStr , aArg15 );
3882  insert( lStr , aArg16 );
3883  insert( lStr , aArg17 );
3884  insert( lStr , aArg18 );
3885  insert( lStr , aArg19 );
3886  insert( lStr , aArg20 );
3887  insert( lStr , aArg21 );
3888  insert( lStr , aArg22 );
3889  insert( lStr , aArg23 );
3890  insert( lStr , aArg24 );
3891  insert( lStr , aArg25 );
3892  aNotice.tail();
3893  }
3894  #endif
3895  #endif
3896  #endif
3897  #endif
3898 }
3899 
3900 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
3901 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
3902 {
3903  #ifndef LOGGING_EXCLUDE_FATAL
3904  #ifndef LOGGING_EXCLUDE_ERROR
3905  #ifndef LOGGING_EXCLUDE_WARNING
3906  #ifndef LOGGING_EXCLUDE_NOTICE
3907  if( LoggingIncludes( aNotice ) ){
3908  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3909  std::ostream& lStr( aNotice.stream() );
3910  aNotice.head();
3911  insert( lStr , aArg0 );
3912  insert( lStr , aArg1 );
3913  insert( lStr , aArg2 );
3914  insert( lStr , aArg3 );
3915  insert( lStr , aArg4 );
3916  insert( lStr , aArg5 );
3917  insert( lStr , aArg6 );
3918  insert( lStr , aArg7 );
3919  insert( lStr , aArg8 );
3920  insert( lStr , aArg9 );
3921  insert( lStr , aArg10 );
3922  insert( lStr , aArg11 );
3923  insert( lStr , aArg12 );
3924  insert( lStr , aArg13 );
3925  insert( lStr , aArg14 );
3926  insert( lStr , aArg15 );
3927  insert( lStr , aArg16 );
3928  insert( lStr , aArg17 );
3929  insert( lStr , aArg18 );
3930  insert( lStr , aArg19 );
3931  insert( lStr , aArg20 );
3932  insert( lStr , aArg21 );
3933  insert( lStr , aArg22 );
3934  insert( lStr , aArg23 );
3935  insert( lStr , aArg24 );
3936  insert( lStr , aArg25 );
3937  insert( lStr , aArg26 );
3938  aNotice.tail();
3939  }
3940  #endif
3941  #endif
3942  #endif
3943  #endif
3944 }
3945 
3946 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
3947 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
3948 {
3949  #ifndef LOGGING_EXCLUDE_FATAL
3950  #ifndef LOGGING_EXCLUDE_ERROR
3951  #ifndef LOGGING_EXCLUDE_WARNING
3952  #ifndef LOGGING_EXCLUDE_NOTICE
3953  if( LoggingIncludes( aNotice ) ){
3954  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
3955  std::ostream& lStr( aNotice.stream() );
3956  aNotice.head();
3957  insert( lStr , aArg0 );
3958  insert( lStr , aArg1 );
3959  insert( lStr , aArg2 );
3960  insert( lStr , aArg3 );
3961  insert( lStr , aArg4 );
3962  insert( lStr , aArg5 );
3963  insert( lStr , aArg6 );
3964  insert( lStr , aArg7 );
3965  insert( lStr , aArg8 );
3966  insert( lStr , aArg9 );
3967  insert( lStr , aArg10 );
3968  insert( lStr , aArg11 );
3969  insert( lStr , aArg12 );
3970  insert( lStr , aArg13 );
3971  insert( lStr , aArg14 );
3972  insert( lStr , aArg15 );
3973  insert( lStr , aArg16 );
3974  insert( lStr , aArg17 );
3975  insert( lStr , aArg18 );
3976  insert( lStr , aArg19 );
3977  insert( lStr , aArg20 );
3978  insert( lStr , aArg21 );
3979  insert( lStr , aArg22 );
3980  insert( lStr , aArg23 );
3981  insert( lStr , aArg24 );
3982  insert( lStr , aArg25 );
3983  insert( lStr , aArg26 );
3984  insert( lStr , aArg27 );
3985  aNotice.tail();
3986  }
3987  #endif
3988  #endif
3989  #endif
3990  #endif
3991 }
3992 
3993 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
3994 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
3995 {
3996  #ifndef LOGGING_EXCLUDE_FATAL
3997  #ifndef LOGGING_EXCLUDE_ERROR
3998  #ifndef LOGGING_EXCLUDE_WARNING
3999  #ifndef LOGGING_EXCLUDE_NOTICE
4000  if( LoggingIncludes( aNotice ) ){
4001  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4002  std::ostream& lStr( aNotice.stream() );
4003  aNotice.head();
4004  insert( lStr , aArg0 );
4005  insert( lStr , aArg1 );
4006  insert( lStr , aArg2 );
4007  insert( lStr , aArg3 );
4008  insert( lStr , aArg4 );
4009  insert( lStr , aArg5 );
4010  insert( lStr , aArg6 );
4011  insert( lStr , aArg7 );
4012  insert( lStr , aArg8 );
4013  insert( lStr , aArg9 );
4014  insert( lStr , aArg10 );
4015  insert( lStr , aArg11 );
4016  insert( lStr , aArg12 );
4017  insert( lStr , aArg13 );
4018  insert( lStr , aArg14 );
4019  insert( lStr , aArg15 );
4020  insert( lStr , aArg16 );
4021  insert( lStr , aArg17 );
4022  insert( lStr , aArg18 );
4023  insert( lStr , aArg19 );
4024  insert( lStr , aArg20 );
4025  insert( lStr , aArg21 );
4026  insert( lStr , aArg22 );
4027  insert( lStr , aArg23 );
4028  insert( lStr , aArg24 );
4029  insert( lStr , aArg25 );
4030  insert( lStr , aArg26 );
4031  insert( lStr , aArg27 );
4032  insert( lStr , aArg28 );
4033  aNotice.tail();
4034  }
4035  #endif
4036  #endif
4037  #endif
4038  #endif
4039 }
4040 
4041 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
4042 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
4043 {
4044  #ifndef LOGGING_EXCLUDE_FATAL
4045  #ifndef LOGGING_EXCLUDE_ERROR
4046  #ifndef LOGGING_EXCLUDE_WARNING
4047  #ifndef LOGGING_EXCLUDE_NOTICE
4048  if( LoggingIncludes( aNotice ) ){
4049  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4050  std::ostream& lStr( aNotice.stream() );
4051  aNotice.head();
4052  insert( lStr , aArg0 );
4053  insert( lStr , aArg1 );
4054  insert( lStr , aArg2 );
4055  insert( lStr , aArg3 );
4056  insert( lStr , aArg4 );
4057  insert( lStr , aArg5 );
4058  insert( lStr , aArg6 );
4059  insert( lStr , aArg7 );
4060  insert( lStr , aArg8 );
4061  insert( lStr , aArg9 );
4062  insert( lStr , aArg10 );
4063  insert( lStr , aArg11 );
4064  insert( lStr , aArg12 );
4065  insert( lStr , aArg13 );
4066  insert( lStr , aArg14 );
4067  insert( lStr , aArg15 );
4068  insert( lStr , aArg16 );
4069  insert( lStr , aArg17 );
4070  insert( lStr , aArg18 );
4071  insert( lStr , aArg19 );
4072  insert( lStr , aArg20 );
4073  insert( lStr , aArg21 );
4074  insert( lStr , aArg22 );
4075  insert( lStr , aArg23 );
4076  insert( lStr , aArg24 );
4077  insert( lStr , aArg25 );
4078  insert( lStr , aArg26 );
4079  insert( lStr , aArg27 );
4080  insert( lStr , aArg28 );
4081  insert( lStr , aArg29 );
4082  aNotice.tail();
4083  }
4084  #endif
4085  #endif
4086  #endif
4087  #endif
4088 }
4089 
4090 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
4091 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
4092 {
4093  #ifndef LOGGING_EXCLUDE_FATAL
4094  #ifndef LOGGING_EXCLUDE_ERROR
4095  #ifndef LOGGING_EXCLUDE_WARNING
4096  #ifndef LOGGING_EXCLUDE_NOTICE
4097  if( LoggingIncludes( aNotice ) ){
4098  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4099  std::ostream& lStr( aNotice.stream() );
4100  aNotice.head();
4101  insert( lStr , aArg0 );
4102  insert( lStr , aArg1 );
4103  insert( lStr , aArg2 );
4104  insert( lStr , aArg3 );
4105  insert( lStr , aArg4 );
4106  insert( lStr , aArg5 );
4107  insert( lStr , aArg6 );
4108  insert( lStr , aArg7 );
4109  insert( lStr , aArg8 );
4110  insert( lStr , aArg9 );
4111  insert( lStr , aArg10 );
4112  insert( lStr , aArg11 );
4113  insert( lStr , aArg12 );
4114  insert( lStr , aArg13 );
4115  insert( lStr , aArg14 );
4116  insert( lStr , aArg15 );
4117  insert( lStr , aArg16 );
4118  insert( lStr , aArg17 );
4119  insert( lStr , aArg18 );
4120  insert( lStr , aArg19 );
4121  insert( lStr , aArg20 );
4122  insert( lStr , aArg21 );
4123  insert( lStr , aArg22 );
4124  insert( lStr , aArg23 );
4125  insert( lStr , aArg24 );
4126  insert( lStr , aArg25 );
4127  insert( lStr , aArg26 );
4128  insert( lStr , aArg27 );
4129  insert( lStr , aArg28 );
4130  insert( lStr , aArg29 );
4131  insert( lStr , aArg30 );
4132  aNotice.tail();
4133  }
4134  #endif
4135  #endif
4136  #endif
4137  #endif
4138 }
4139 
4140 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
4141 void log ( NoticeLevel& aNotice , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
4142 {
4143  #ifndef LOGGING_EXCLUDE_FATAL
4144  #ifndef LOGGING_EXCLUDE_ERROR
4145  #ifndef LOGGING_EXCLUDE_WARNING
4146  #ifndef LOGGING_EXCLUDE_NOTICE
4147  if( LoggingIncludes( aNotice ) ){
4148  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4149  std::ostream& lStr( aNotice.stream() );
4150  aNotice.head();
4151  insert( lStr , aArg0 );
4152  insert( lStr , aArg1 );
4153  insert( lStr , aArg2 );
4154  insert( lStr , aArg3 );
4155  insert( lStr , aArg4 );
4156  insert( lStr , aArg5 );
4157  insert( lStr , aArg6 );
4158  insert( lStr , aArg7 );
4159  insert( lStr , aArg8 );
4160  insert( lStr , aArg9 );
4161  insert( lStr , aArg10 );
4162  insert( lStr , aArg11 );
4163  insert( lStr , aArg12 );
4164  insert( lStr , aArg13 );
4165  insert( lStr , aArg14 );
4166  insert( lStr , aArg15 );
4167  insert( lStr , aArg16 );
4168  insert( lStr , aArg17 );
4169  insert( lStr , aArg18 );
4170  insert( lStr , aArg19 );
4171  insert( lStr , aArg20 );
4172  insert( lStr , aArg21 );
4173  insert( lStr , aArg22 );
4174  insert( lStr , aArg23 );
4175  insert( lStr , aArg24 );
4176  insert( lStr , aArg25 );
4177  insert( lStr , aArg26 );
4178  insert( lStr , aArg27 );
4179  insert( lStr , aArg28 );
4180  insert( lStr , aArg29 );
4181  insert( lStr , aArg30 );
4182  insert( lStr , aArg31 );
4183  aNotice.tail();
4184  }
4185  #endif
4186  #endif
4187  #endif
4188  #endif
4189 }
4190 
4191 // ======================================================================================================================================================
4192 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
4193 // ======================================================================================================================================================
4194 
4195 template< typename T0 >
4196 void log ( InfoLevel& aInfo , const T0& aArg0 )
4197 {
4198  #ifndef LOGGING_EXCLUDE_FATAL
4199  #ifndef LOGGING_EXCLUDE_ERROR
4200  #ifndef LOGGING_EXCLUDE_WARNING
4201  #ifndef LOGGING_EXCLUDE_NOTICE
4202  #ifndef LOGGING_EXCLUDE_INFO
4203  if( LoggingIncludes( aInfo ) ){
4204  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4205  std::ostream& lStr( aInfo.stream() );
4206  aInfo.head();
4207  insert( lStr , aArg0 );
4208  aInfo.tail();
4209  }
4210  #endif
4211  #endif
4212  #endif
4213  #endif
4214  #endif
4215 }
4216 
4217 template< typename T0 , typename T1 >
4218 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 )
4219 {
4220  #ifndef LOGGING_EXCLUDE_FATAL
4221  #ifndef LOGGING_EXCLUDE_ERROR
4222  #ifndef LOGGING_EXCLUDE_WARNING
4223  #ifndef LOGGING_EXCLUDE_NOTICE
4224  #ifndef LOGGING_EXCLUDE_INFO
4225  if( LoggingIncludes( aInfo ) ){
4226  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4227  std::ostream& lStr( aInfo.stream() );
4228  aInfo.head();
4229  insert( lStr , aArg0 );
4230  insert( lStr , aArg1 );
4231  aInfo.tail();
4232  }
4233  #endif
4234  #endif
4235  #endif
4236  #endif
4237  #endif
4238 }
4239 
4240 template< typename T0 , typename T1 , typename T2 >
4241 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
4242 {
4243  #ifndef LOGGING_EXCLUDE_FATAL
4244  #ifndef LOGGING_EXCLUDE_ERROR
4245  #ifndef LOGGING_EXCLUDE_WARNING
4246  #ifndef LOGGING_EXCLUDE_NOTICE
4247  #ifndef LOGGING_EXCLUDE_INFO
4248  if( LoggingIncludes( aInfo ) ){
4249  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4250  std::ostream& lStr( aInfo.stream() );
4251  aInfo.head();
4252  insert( lStr , aArg0 );
4253  insert( lStr , aArg1 );
4254  insert( lStr , aArg2 );
4255  aInfo.tail();
4256  }
4257  #endif
4258  #endif
4259  #endif
4260  #endif
4261  #endif
4262 }
4263 
4264 template< typename T0 , typename T1 , typename T2 , typename T3 >
4265 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
4266 {
4267  #ifndef LOGGING_EXCLUDE_FATAL
4268  #ifndef LOGGING_EXCLUDE_ERROR
4269  #ifndef LOGGING_EXCLUDE_WARNING
4270  #ifndef LOGGING_EXCLUDE_NOTICE
4271  #ifndef LOGGING_EXCLUDE_INFO
4272  if( LoggingIncludes( aInfo ) ){
4273  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4274  std::ostream& lStr( aInfo.stream() );
4275  aInfo.head();
4276  insert( lStr , aArg0 );
4277  insert( lStr , aArg1 );
4278  insert( lStr , aArg2 );
4279  insert( lStr , aArg3 );
4280  aInfo.tail();
4281  }
4282  #endif
4283  #endif
4284  #endif
4285  #endif
4286  #endif
4287 }
4288 
4289 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
4290 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
4291 {
4292  #ifndef LOGGING_EXCLUDE_FATAL
4293  #ifndef LOGGING_EXCLUDE_ERROR
4294  #ifndef LOGGING_EXCLUDE_WARNING
4295  #ifndef LOGGING_EXCLUDE_NOTICE
4296  #ifndef LOGGING_EXCLUDE_INFO
4297  if( LoggingIncludes( aInfo ) ){
4298  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4299  std::ostream& lStr( aInfo.stream() );
4300  aInfo.head();
4301  insert( lStr , aArg0 );
4302  insert( lStr , aArg1 );
4303  insert( lStr , aArg2 );
4304  insert( lStr , aArg3 );
4305  insert( lStr , aArg4 );
4306  aInfo.tail();
4307  }
4308  #endif
4309  #endif
4310  #endif
4311  #endif
4312  #endif
4313 }
4314 
4315 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
4316 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
4317 {
4318  #ifndef LOGGING_EXCLUDE_FATAL
4319  #ifndef LOGGING_EXCLUDE_ERROR
4320  #ifndef LOGGING_EXCLUDE_WARNING
4321  #ifndef LOGGING_EXCLUDE_NOTICE
4322  #ifndef LOGGING_EXCLUDE_INFO
4323  if( LoggingIncludes( aInfo ) ){
4324  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4325  std::ostream& lStr( aInfo.stream() );
4326  aInfo.head();
4327  insert( lStr , aArg0 );
4328  insert( lStr , aArg1 );
4329  insert( lStr , aArg2 );
4330  insert( lStr , aArg3 );
4331  insert( lStr , aArg4 );
4332  insert( lStr , aArg5 );
4333  aInfo.tail();
4334  }
4335  #endif
4336  #endif
4337  #endif
4338  #endif
4339  #endif
4340 }
4341 
4342 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
4343 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
4344 {
4345  #ifndef LOGGING_EXCLUDE_FATAL
4346  #ifndef LOGGING_EXCLUDE_ERROR
4347  #ifndef LOGGING_EXCLUDE_WARNING
4348  #ifndef LOGGING_EXCLUDE_NOTICE
4349  #ifndef LOGGING_EXCLUDE_INFO
4350  if( LoggingIncludes( aInfo ) ){
4351  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4352  std::ostream& lStr( aInfo.stream() );
4353  aInfo.head();
4354  insert( lStr , aArg0 );
4355  insert( lStr , aArg1 );
4356  insert( lStr , aArg2 );
4357  insert( lStr , aArg3 );
4358  insert( lStr , aArg4 );
4359  insert( lStr , aArg5 );
4360  insert( lStr , aArg6 );
4361  aInfo.tail();
4362  }
4363  #endif
4364  #endif
4365  #endif
4366  #endif
4367  #endif
4368 }
4369 
4370 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
4371 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
4372 {
4373  #ifndef LOGGING_EXCLUDE_FATAL
4374  #ifndef LOGGING_EXCLUDE_ERROR
4375  #ifndef LOGGING_EXCLUDE_WARNING
4376  #ifndef LOGGING_EXCLUDE_NOTICE
4377  #ifndef LOGGING_EXCLUDE_INFO
4378  if( LoggingIncludes( aInfo ) ){
4379  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4380  std::ostream& lStr( aInfo.stream() );
4381  aInfo.head();
4382  insert( lStr , aArg0 );
4383  insert( lStr , aArg1 );
4384  insert( lStr , aArg2 );
4385  insert( lStr , aArg3 );
4386  insert( lStr , aArg4 );
4387  insert( lStr , aArg5 );
4388  insert( lStr , aArg6 );
4389  insert( lStr , aArg7 );
4390  aInfo.tail();
4391  }
4392  #endif
4393  #endif
4394  #endif
4395  #endif
4396  #endif
4397 }
4398 
4399 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
4400 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
4401 {
4402  #ifndef LOGGING_EXCLUDE_FATAL
4403  #ifndef LOGGING_EXCLUDE_ERROR
4404  #ifndef LOGGING_EXCLUDE_WARNING
4405  #ifndef LOGGING_EXCLUDE_NOTICE
4406  #ifndef LOGGING_EXCLUDE_INFO
4407  if( LoggingIncludes( aInfo ) ){
4408  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4409  std::ostream& lStr( aInfo.stream() );
4410  aInfo.head();
4411  insert( lStr , aArg0 );
4412  insert( lStr , aArg1 );
4413  insert( lStr , aArg2 );
4414  insert( lStr , aArg3 );
4415  insert( lStr , aArg4 );
4416  insert( lStr , aArg5 );
4417  insert( lStr , aArg6 );
4418  insert( lStr , aArg7 );
4419  insert( lStr , aArg8 );
4420  aInfo.tail();
4421  }
4422  #endif
4423  #endif
4424  #endif
4425  #endif
4426  #endif
4427 }
4428 
4429 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
4430 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
4431 {
4432  #ifndef LOGGING_EXCLUDE_FATAL
4433  #ifndef LOGGING_EXCLUDE_ERROR
4434  #ifndef LOGGING_EXCLUDE_WARNING
4435  #ifndef LOGGING_EXCLUDE_NOTICE
4436  #ifndef LOGGING_EXCLUDE_INFO
4437  if( LoggingIncludes( aInfo ) ){
4438  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4439  std::ostream& lStr( aInfo.stream() );
4440  aInfo.head();
4441  insert( lStr , aArg0 );
4442  insert( lStr , aArg1 );
4443  insert( lStr , aArg2 );
4444  insert( lStr , aArg3 );
4445  insert( lStr , aArg4 );
4446  insert( lStr , aArg5 );
4447  insert( lStr , aArg6 );
4448  insert( lStr , aArg7 );
4449  insert( lStr , aArg8 );
4450  insert( lStr , aArg9 );
4451  aInfo.tail();
4452  }
4453  #endif
4454  #endif
4455  #endif
4456  #endif
4457  #endif
4458 }
4459 
4460 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
4461 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
4462 {
4463  #ifndef LOGGING_EXCLUDE_FATAL
4464  #ifndef LOGGING_EXCLUDE_ERROR
4465  #ifndef LOGGING_EXCLUDE_WARNING
4466  #ifndef LOGGING_EXCLUDE_NOTICE
4467  #ifndef LOGGING_EXCLUDE_INFO
4468  if( LoggingIncludes( aInfo ) ){
4469  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4470  std::ostream& lStr( aInfo.stream() );
4471  aInfo.head();
4472  insert( lStr , aArg0 );
4473  insert( lStr , aArg1 );
4474  insert( lStr , aArg2 );
4475  insert( lStr , aArg3 );
4476  insert( lStr , aArg4 );
4477  insert( lStr , aArg5 );
4478  insert( lStr , aArg6 );
4479  insert( lStr , aArg7 );
4480  insert( lStr , aArg8 );
4481  insert( lStr , aArg9 );
4482  insert( lStr , aArg10 );
4483  aInfo.tail();
4484  }
4485  #endif
4486  #endif
4487  #endif
4488  #endif
4489  #endif
4490 }
4491 
4492 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
4493 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
4494 {
4495  #ifndef LOGGING_EXCLUDE_FATAL
4496  #ifndef LOGGING_EXCLUDE_ERROR
4497  #ifndef LOGGING_EXCLUDE_WARNING
4498  #ifndef LOGGING_EXCLUDE_NOTICE
4499  #ifndef LOGGING_EXCLUDE_INFO
4500  if( LoggingIncludes( aInfo ) ){
4501  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4502  std::ostream& lStr( aInfo.stream() );
4503  aInfo.head();
4504  insert( lStr , aArg0 );
4505  insert( lStr , aArg1 );
4506  insert( lStr , aArg2 );
4507  insert( lStr , aArg3 );
4508  insert( lStr , aArg4 );
4509  insert( lStr , aArg5 );
4510  insert( lStr , aArg6 );
4511  insert( lStr , aArg7 );
4512  insert( lStr , aArg8 );
4513  insert( lStr , aArg9 );
4514  insert( lStr , aArg10 );
4515  insert( lStr , aArg11 );
4516  aInfo.tail();
4517  }
4518  #endif
4519  #endif
4520  #endif
4521  #endif
4522  #endif
4523 }
4524 
4525 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
4526 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
4527 {
4528  #ifndef LOGGING_EXCLUDE_FATAL
4529  #ifndef LOGGING_EXCLUDE_ERROR
4530  #ifndef LOGGING_EXCLUDE_WARNING
4531  #ifndef LOGGING_EXCLUDE_NOTICE
4532  #ifndef LOGGING_EXCLUDE_INFO
4533  if( LoggingIncludes( aInfo ) ){
4534  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4535  std::ostream& lStr( aInfo.stream() );
4536  aInfo.head();
4537  insert( lStr , aArg0 );
4538  insert( lStr , aArg1 );
4539  insert( lStr , aArg2 );
4540  insert( lStr , aArg3 );
4541  insert( lStr , aArg4 );
4542  insert( lStr , aArg5 );
4543  insert( lStr , aArg6 );
4544  insert( lStr , aArg7 );
4545  insert( lStr , aArg8 );
4546  insert( lStr , aArg9 );
4547  insert( lStr , aArg10 );
4548  insert( lStr , aArg11 );
4549  insert( lStr , aArg12 );
4550  aInfo.tail();
4551  }
4552  #endif
4553  #endif
4554  #endif
4555  #endif
4556  #endif
4557 }
4558 
4559 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
4560 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
4561 {
4562  #ifndef LOGGING_EXCLUDE_FATAL
4563  #ifndef LOGGING_EXCLUDE_ERROR
4564  #ifndef LOGGING_EXCLUDE_WARNING
4565  #ifndef LOGGING_EXCLUDE_NOTICE
4566  #ifndef LOGGING_EXCLUDE_INFO
4567  if( LoggingIncludes( aInfo ) ){
4568  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4569  std::ostream& lStr( aInfo.stream() );
4570  aInfo.head();
4571  insert( lStr , aArg0 );
4572  insert( lStr , aArg1 );
4573  insert( lStr , aArg2 );
4574  insert( lStr , aArg3 );
4575  insert( lStr , aArg4 );
4576  insert( lStr , aArg5 );
4577  insert( lStr , aArg6 );
4578  insert( lStr , aArg7 );
4579  insert( lStr , aArg8 );
4580  insert( lStr , aArg9 );
4581  insert( lStr , aArg10 );
4582  insert( lStr , aArg11 );
4583  insert( lStr , aArg12 );
4584  insert( lStr , aArg13 );
4585  aInfo.tail();
4586  }
4587  #endif
4588  #endif
4589  #endif
4590  #endif
4591  #endif
4592 }
4593 
4594 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
4595 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
4596 {
4597  #ifndef LOGGING_EXCLUDE_FATAL
4598  #ifndef LOGGING_EXCLUDE_ERROR
4599  #ifndef LOGGING_EXCLUDE_WARNING
4600  #ifndef LOGGING_EXCLUDE_NOTICE
4601  #ifndef LOGGING_EXCLUDE_INFO
4602  if( LoggingIncludes( aInfo ) ){
4603  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4604  std::ostream& lStr( aInfo.stream() );
4605  aInfo.head();
4606  insert( lStr , aArg0 );
4607  insert( lStr , aArg1 );
4608  insert( lStr , aArg2 );
4609  insert( lStr , aArg3 );
4610  insert( lStr , aArg4 );
4611  insert( lStr , aArg5 );
4612  insert( lStr , aArg6 );
4613  insert( lStr , aArg7 );
4614  insert( lStr , aArg8 );
4615  insert( lStr , aArg9 );
4616  insert( lStr , aArg10 );
4617  insert( lStr , aArg11 );
4618  insert( lStr , aArg12 );
4619  insert( lStr , aArg13 );
4620  insert( lStr , aArg14 );
4621  aInfo.tail();
4622  }
4623  #endif
4624  #endif
4625  #endif
4626  #endif
4627  #endif
4628 }
4629 
4630 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
4631 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
4632 {
4633  #ifndef LOGGING_EXCLUDE_FATAL
4634  #ifndef LOGGING_EXCLUDE_ERROR
4635  #ifndef LOGGING_EXCLUDE_WARNING
4636  #ifndef LOGGING_EXCLUDE_NOTICE
4637  #ifndef LOGGING_EXCLUDE_INFO
4638  if( LoggingIncludes( aInfo ) ){
4639  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4640  std::ostream& lStr( aInfo.stream() );
4641  aInfo.head();
4642  insert( lStr , aArg0 );
4643  insert( lStr , aArg1 );
4644  insert( lStr , aArg2 );
4645  insert( lStr , aArg3 );
4646  insert( lStr , aArg4 );
4647  insert( lStr , aArg5 );
4648  insert( lStr , aArg6 );
4649  insert( lStr , aArg7 );
4650  insert( lStr , aArg8 );
4651  insert( lStr , aArg9 );
4652  insert( lStr , aArg10 );
4653  insert( lStr , aArg11 );
4654  insert( lStr , aArg12 );
4655  insert( lStr , aArg13 );
4656  insert( lStr , aArg14 );
4657  insert( lStr , aArg15 );
4658  aInfo.tail();
4659  }
4660  #endif
4661  #endif
4662  #endif
4663  #endif
4664  #endif
4665 }
4666 
4667 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
4668 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
4669 {
4670  #ifndef LOGGING_EXCLUDE_FATAL
4671  #ifndef LOGGING_EXCLUDE_ERROR
4672  #ifndef LOGGING_EXCLUDE_WARNING
4673  #ifndef LOGGING_EXCLUDE_NOTICE
4674  #ifndef LOGGING_EXCLUDE_INFO
4675  if( LoggingIncludes( aInfo ) ){
4676  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4677  std::ostream& lStr( aInfo.stream() );
4678  aInfo.head();
4679  insert( lStr , aArg0 );
4680  insert( lStr , aArg1 );
4681  insert( lStr , aArg2 );
4682  insert( lStr , aArg3 );
4683  insert( lStr , aArg4 );
4684  insert( lStr , aArg5 );
4685  insert( lStr , aArg6 );
4686  insert( lStr , aArg7 );
4687  insert( lStr , aArg8 );
4688  insert( lStr , aArg9 );
4689  insert( lStr , aArg10 );
4690  insert( lStr , aArg11 );
4691  insert( lStr , aArg12 );
4692  insert( lStr , aArg13 );
4693  insert( lStr , aArg14 );
4694  insert( lStr , aArg15 );
4695  insert( lStr , aArg16 );
4696  aInfo.tail();
4697  }
4698  #endif
4699  #endif
4700  #endif
4701  #endif
4702  #endif
4703 }
4704 
4705 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
4706 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
4707 {
4708  #ifndef LOGGING_EXCLUDE_FATAL
4709  #ifndef LOGGING_EXCLUDE_ERROR
4710  #ifndef LOGGING_EXCLUDE_WARNING
4711  #ifndef LOGGING_EXCLUDE_NOTICE
4712  #ifndef LOGGING_EXCLUDE_INFO
4713  if( LoggingIncludes( aInfo ) ){
4714  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4715  std::ostream& lStr( aInfo.stream() );
4716  aInfo.head();
4717  insert( lStr , aArg0 );
4718  insert( lStr , aArg1 );
4719  insert( lStr , aArg2 );
4720  insert( lStr , aArg3 );
4721  insert( lStr , aArg4 );
4722  insert( lStr , aArg5 );
4723  insert( lStr , aArg6 );
4724  insert( lStr , aArg7 );
4725  insert( lStr , aArg8 );
4726  insert( lStr , aArg9 );
4727  insert( lStr , aArg10 );
4728  insert( lStr , aArg11 );
4729  insert( lStr , aArg12 );
4730  insert( lStr , aArg13 );
4731  insert( lStr , aArg14 );
4732  insert( lStr , aArg15 );
4733  insert( lStr , aArg16 );
4734  insert( lStr , aArg17 );
4735  aInfo.tail();
4736  }
4737  #endif
4738  #endif
4739  #endif
4740  #endif
4741  #endif
4742 }
4743 
4744 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
4745 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
4746 {
4747  #ifndef LOGGING_EXCLUDE_FATAL
4748  #ifndef LOGGING_EXCLUDE_ERROR
4749  #ifndef LOGGING_EXCLUDE_WARNING
4750  #ifndef LOGGING_EXCLUDE_NOTICE
4751  #ifndef LOGGING_EXCLUDE_INFO
4752  if( LoggingIncludes( aInfo ) ){
4753  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4754  std::ostream& lStr( aInfo.stream() );
4755  aInfo.head();
4756  insert( lStr , aArg0 );
4757  insert( lStr , aArg1 );
4758  insert( lStr , aArg2 );
4759  insert( lStr , aArg3 );
4760  insert( lStr , aArg4 );
4761  insert( lStr , aArg5 );
4762  insert( lStr , aArg6 );
4763  insert( lStr , aArg7 );
4764  insert( lStr , aArg8 );
4765  insert( lStr , aArg9 );
4766  insert( lStr , aArg10 );
4767  insert( lStr , aArg11 );
4768  insert( lStr , aArg12 );
4769  insert( lStr , aArg13 );
4770  insert( lStr , aArg14 );
4771  insert( lStr , aArg15 );
4772  insert( lStr , aArg16 );
4773  insert( lStr , aArg17 );
4774  insert( lStr , aArg18 );
4775  aInfo.tail();
4776  }
4777  #endif
4778  #endif
4779  #endif
4780  #endif
4781  #endif
4782 }
4783 
4784 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
4785 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
4786 {
4787  #ifndef LOGGING_EXCLUDE_FATAL
4788  #ifndef LOGGING_EXCLUDE_ERROR
4789  #ifndef LOGGING_EXCLUDE_WARNING
4790  #ifndef LOGGING_EXCLUDE_NOTICE
4791  #ifndef LOGGING_EXCLUDE_INFO
4792  if( LoggingIncludes( aInfo ) ){
4793  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4794  std::ostream& lStr( aInfo.stream() );
4795  aInfo.head();
4796  insert( lStr , aArg0 );
4797  insert( lStr , aArg1 );
4798  insert( lStr , aArg2 );
4799  insert( lStr , aArg3 );
4800  insert( lStr , aArg4 );
4801  insert( lStr , aArg5 );
4802  insert( lStr , aArg6 );
4803  insert( lStr , aArg7 );
4804  insert( lStr , aArg8 );
4805  insert( lStr , aArg9 );
4806  insert( lStr , aArg10 );
4807  insert( lStr , aArg11 );
4808  insert( lStr , aArg12 );
4809  insert( lStr , aArg13 );
4810  insert( lStr , aArg14 );
4811  insert( lStr , aArg15 );
4812  insert( lStr , aArg16 );
4813  insert( lStr , aArg17 );
4814  insert( lStr , aArg18 );
4815  insert( lStr , aArg19 );
4816  aInfo.tail();
4817  }
4818  #endif
4819  #endif
4820  #endif
4821  #endif
4822  #endif
4823 }
4824 
4825 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
4826 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
4827 {
4828  #ifndef LOGGING_EXCLUDE_FATAL
4829  #ifndef LOGGING_EXCLUDE_ERROR
4830  #ifndef LOGGING_EXCLUDE_WARNING
4831  #ifndef LOGGING_EXCLUDE_NOTICE
4832  #ifndef LOGGING_EXCLUDE_INFO
4833  if( LoggingIncludes( aInfo ) ){
4834  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4835  std::ostream& lStr( aInfo.stream() );
4836  aInfo.head();
4837  insert( lStr , aArg0 );
4838  insert( lStr , aArg1 );
4839  insert( lStr , aArg2 );
4840  insert( lStr , aArg3 );
4841  insert( lStr , aArg4 );
4842  insert( lStr , aArg5 );
4843  insert( lStr , aArg6 );
4844  insert( lStr , aArg7 );
4845  insert( lStr , aArg8 );
4846  insert( lStr , aArg9 );
4847  insert( lStr , aArg10 );
4848  insert( lStr , aArg11 );
4849  insert( lStr , aArg12 );
4850  insert( lStr , aArg13 );
4851  insert( lStr , aArg14 );
4852  insert( lStr , aArg15 );
4853  insert( lStr , aArg16 );
4854  insert( lStr , aArg17 );
4855  insert( lStr , aArg18 );
4856  insert( lStr , aArg19 );
4857  insert( lStr , aArg20 );
4858  aInfo.tail();
4859  }
4860  #endif
4861  #endif
4862  #endif
4863  #endif
4864  #endif
4865 }
4866 
4867 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
4868 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
4869 {
4870  #ifndef LOGGING_EXCLUDE_FATAL
4871  #ifndef LOGGING_EXCLUDE_ERROR
4872  #ifndef LOGGING_EXCLUDE_WARNING
4873  #ifndef LOGGING_EXCLUDE_NOTICE
4874  #ifndef LOGGING_EXCLUDE_INFO
4875  if( LoggingIncludes( aInfo ) ){
4876  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4877  std::ostream& lStr( aInfo.stream() );
4878  aInfo.head();
4879  insert( lStr , aArg0 );
4880  insert( lStr , aArg1 );
4881  insert( lStr , aArg2 );
4882  insert( lStr , aArg3 );
4883  insert( lStr , aArg4 );
4884  insert( lStr , aArg5 );
4885  insert( lStr , aArg6 );
4886  insert( lStr , aArg7 );
4887  insert( lStr , aArg8 );
4888  insert( lStr , aArg9 );
4889  insert( lStr , aArg10 );
4890  insert( lStr , aArg11 );
4891  insert( lStr , aArg12 );
4892  insert( lStr , aArg13 );
4893  insert( lStr , aArg14 );
4894  insert( lStr , aArg15 );
4895  insert( lStr , aArg16 );
4896  insert( lStr , aArg17 );
4897  insert( lStr , aArg18 );
4898  insert( lStr , aArg19 );
4899  insert( lStr , aArg20 );
4900  insert( lStr , aArg21 );
4901  aInfo.tail();
4902  }
4903  #endif
4904  #endif
4905  #endif
4906  #endif
4907  #endif
4908 }
4909 
4910 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
4911 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
4912 {
4913  #ifndef LOGGING_EXCLUDE_FATAL
4914  #ifndef LOGGING_EXCLUDE_ERROR
4915  #ifndef LOGGING_EXCLUDE_WARNING
4916  #ifndef LOGGING_EXCLUDE_NOTICE
4917  #ifndef LOGGING_EXCLUDE_INFO
4918  if( LoggingIncludes( aInfo ) ){
4919  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4920  std::ostream& lStr( aInfo.stream() );
4921  aInfo.head();
4922  insert( lStr , aArg0 );
4923  insert( lStr , aArg1 );
4924  insert( lStr , aArg2 );
4925  insert( lStr , aArg3 );
4926  insert( lStr , aArg4 );
4927  insert( lStr , aArg5 );
4928  insert( lStr , aArg6 );
4929  insert( lStr , aArg7 );
4930  insert( lStr , aArg8 );
4931  insert( lStr , aArg9 );
4932  insert( lStr , aArg10 );
4933  insert( lStr , aArg11 );
4934  insert( lStr , aArg12 );
4935  insert( lStr , aArg13 );
4936  insert( lStr , aArg14 );
4937  insert( lStr , aArg15 );
4938  insert( lStr , aArg16 );
4939  insert( lStr , aArg17 );
4940  insert( lStr , aArg18 );
4941  insert( lStr , aArg19 );
4942  insert( lStr , aArg20 );
4943  insert( lStr , aArg21 );
4944  insert( lStr , aArg22 );
4945  aInfo.tail();
4946  }
4947  #endif
4948  #endif
4949  #endif
4950  #endif
4951  #endif
4952 }
4953 
4954 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
4955 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
4956 {
4957  #ifndef LOGGING_EXCLUDE_FATAL
4958  #ifndef LOGGING_EXCLUDE_ERROR
4959  #ifndef LOGGING_EXCLUDE_WARNING
4960  #ifndef LOGGING_EXCLUDE_NOTICE
4961  #ifndef LOGGING_EXCLUDE_INFO
4962  if( LoggingIncludes( aInfo ) ){
4963  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
4964  std::ostream& lStr( aInfo.stream() );
4965  aInfo.head();
4966  insert( lStr , aArg0 );
4967  insert( lStr , aArg1 );
4968  insert( lStr , aArg2 );
4969  insert( lStr , aArg3 );
4970  insert( lStr , aArg4 );
4971  insert( lStr , aArg5 );
4972  insert( lStr , aArg6 );
4973  insert( lStr , aArg7 );
4974  insert( lStr , aArg8 );
4975  insert( lStr , aArg9 );
4976  insert( lStr , aArg10 );
4977  insert( lStr , aArg11 );
4978  insert( lStr , aArg12 );
4979  insert( lStr , aArg13 );
4980  insert( lStr , aArg14 );
4981  insert( lStr , aArg15 );
4982  insert( lStr , aArg16 );
4983  insert( lStr , aArg17 );
4984  insert( lStr , aArg18 );
4985  insert( lStr , aArg19 );
4986  insert( lStr , aArg20 );
4987  insert( lStr , aArg21 );
4988  insert( lStr , aArg22 );
4989  insert( lStr , aArg23 );
4990  aInfo.tail();
4991  }
4992  #endif
4993  #endif
4994  #endif
4995  #endif
4996  #endif
4997 }
4998 
4999 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
5000 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
5001 {
5002  #ifndef LOGGING_EXCLUDE_FATAL
5003  #ifndef LOGGING_EXCLUDE_ERROR
5004  #ifndef LOGGING_EXCLUDE_WARNING
5005  #ifndef LOGGING_EXCLUDE_NOTICE
5006  #ifndef LOGGING_EXCLUDE_INFO
5007  if( LoggingIncludes( aInfo ) ){
5008  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5009  std::ostream& lStr( aInfo.stream() );
5010  aInfo.head();
5011  insert( lStr , aArg0 );
5012  insert( lStr , aArg1 );
5013  insert( lStr , aArg2 );
5014  insert( lStr , aArg3 );
5015  insert( lStr , aArg4 );
5016  insert( lStr , aArg5 );
5017  insert( lStr , aArg6 );
5018  insert( lStr , aArg7 );
5019  insert( lStr , aArg8 );
5020  insert( lStr , aArg9 );
5021  insert( lStr , aArg10 );
5022  insert( lStr , aArg11 );
5023  insert( lStr , aArg12 );
5024  insert( lStr , aArg13 );
5025  insert( lStr , aArg14 );
5026  insert( lStr , aArg15 );
5027  insert( lStr , aArg16 );
5028  insert( lStr , aArg17 );
5029  insert( lStr , aArg18 );
5030  insert( lStr , aArg19 );
5031  insert( lStr , aArg20 );
5032  insert( lStr , aArg21 );
5033  insert( lStr , aArg22 );
5034  insert( lStr , aArg23 );
5035  insert( lStr , aArg24 );
5036  aInfo.tail();
5037  }
5038  #endif
5039  #endif
5040  #endif
5041  #endif
5042  #endif
5043 }
5044 
5045 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
5046 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
5047 {
5048  #ifndef LOGGING_EXCLUDE_FATAL
5049  #ifndef LOGGING_EXCLUDE_ERROR
5050  #ifndef LOGGING_EXCLUDE_WARNING
5051  #ifndef LOGGING_EXCLUDE_NOTICE
5052  #ifndef LOGGING_EXCLUDE_INFO
5053  if( LoggingIncludes( aInfo ) ){
5054  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5055  std::ostream& lStr( aInfo.stream() );
5056  aInfo.head();
5057  insert( lStr , aArg0 );
5058  insert( lStr , aArg1 );
5059  insert( lStr , aArg2 );
5060  insert( lStr , aArg3 );
5061  insert( lStr , aArg4 );
5062  insert( lStr , aArg5 );
5063  insert( lStr , aArg6 );
5064  insert( lStr , aArg7 );
5065  insert( lStr , aArg8 );
5066  insert( lStr , aArg9 );
5067  insert( lStr , aArg10 );
5068  insert( lStr , aArg11 );
5069  insert( lStr , aArg12 );
5070  insert( lStr , aArg13 );
5071  insert( lStr , aArg14 );
5072  insert( lStr , aArg15 );
5073  insert( lStr , aArg16 );
5074  insert( lStr , aArg17 );
5075  insert( lStr , aArg18 );
5076  insert( lStr , aArg19 );
5077  insert( lStr , aArg20 );
5078  insert( lStr , aArg21 );
5079  insert( lStr , aArg22 );
5080  insert( lStr , aArg23 );
5081  insert( lStr , aArg24 );
5082  insert( lStr , aArg25 );
5083  aInfo.tail();
5084  }
5085  #endif
5086  #endif
5087  #endif
5088  #endif
5089  #endif
5090 }
5091 
5092 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
5093 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
5094 {
5095  #ifndef LOGGING_EXCLUDE_FATAL
5096  #ifndef LOGGING_EXCLUDE_ERROR
5097  #ifndef LOGGING_EXCLUDE_WARNING
5098  #ifndef LOGGING_EXCLUDE_NOTICE
5099  #ifndef LOGGING_EXCLUDE_INFO
5100  if( LoggingIncludes( aInfo ) ){
5101  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5102  std::ostream& lStr( aInfo.stream() );
5103  aInfo.head();
5104  insert( lStr , aArg0 );
5105  insert( lStr , aArg1 );
5106  insert( lStr , aArg2 );
5107  insert( lStr , aArg3 );
5108  insert( lStr , aArg4 );
5109  insert( lStr , aArg5 );
5110  insert( lStr , aArg6 );
5111  insert( lStr , aArg7 );
5112  insert( lStr , aArg8 );
5113  insert( lStr , aArg9 );
5114  insert( lStr , aArg10 );
5115  insert( lStr , aArg11 );
5116  insert( lStr , aArg12 );
5117  insert( lStr , aArg13 );
5118  insert( lStr , aArg14 );
5119  insert( lStr , aArg15 );
5120  insert( lStr , aArg16 );
5121  insert( lStr , aArg17 );
5122  insert( lStr , aArg18 );
5123  insert( lStr , aArg19 );
5124  insert( lStr , aArg20 );
5125  insert( lStr , aArg21 );
5126  insert( lStr , aArg22 );
5127  insert( lStr , aArg23 );
5128  insert( lStr , aArg24 );
5129  insert( lStr , aArg25 );
5130  insert( lStr , aArg26 );
5131  aInfo.tail();
5132  }
5133  #endif
5134  #endif
5135  #endif
5136  #endif
5137  #endif
5138 }
5139 
5140 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
5141 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
5142 {
5143  #ifndef LOGGING_EXCLUDE_FATAL
5144  #ifndef LOGGING_EXCLUDE_ERROR
5145  #ifndef LOGGING_EXCLUDE_WARNING
5146  #ifndef LOGGING_EXCLUDE_NOTICE
5147  #ifndef LOGGING_EXCLUDE_INFO
5148  if( LoggingIncludes( aInfo ) ){
5149  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5150  std::ostream& lStr( aInfo.stream() );
5151  aInfo.head();
5152  insert( lStr , aArg0 );
5153  insert( lStr , aArg1 );
5154  insert( lStr , aArg2 );
5155  insert( lStr , aArg3 );
5156  insert( lStr , aArg4 );
5157  insert( lStr , aArg5 );
5158  insert( lStr , aArg6 );
5159  insert( lStr , aArg7 );
5160  insert( lStr , aArg8 );
5161  insert( lStr , aArg9 );
5162  insert( lStr , aArg10 );
5163  insert( lStr , aArg11 );
5164  insert( lStr , aArg12 );
5165  insert( lStr , aArg13 );
5166  insert( lStr , aArg14 );
5167  insert( lStr , aArg15 );
5168  insert( lStr , aArg16 );
5169  insert( lStr , aArg17 );
5170  insert( lStr , aArg18 );
5171  insert( lStr , aArg19 );
5172  insert( lStr , aArg20 );
5173  insert( lStr , aArg21 );
5174  insert( lStr , aArg22 );
5175  insert( lStr , aArg23 );
5176  insert( lStr , aArg24 );
5177  insert( lStr , aArg25 );
5178  insert( lStr , aArg26 );
5179  insert( lStr , aArg27 );
5180  aInfo.tail();
5181  }
5182  #endif
5183  #endif
5184  #endif
5185  #endif
5186  #endif
5187 }
5188 
5189 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
5190 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
5191 {
5192  #ifndef LOGGING_EXCLUDE_FATAL
5193  #ifndef LOGGING_EXCLUDE_ERROR
5194  #ifndef LOGGING_EXCLUDE_WARNING
5195  #ifndef LOGGING_EXCLUDE_NOTICE
5196  #ifndef LOGGING_EXCLUDE_INFO
5197  if( LoggingIncludes( aInfo ) ){
5198  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5199  std::ostream& lStr( aInfo.stream() );
5200  aInfo.head();
5201  insert( lStr , aArg0 );
5202  insert( lStr , aArg1 );
5203  insert( lStr , aArg2 );
5204  insert( lStr , aArg3 );
5205  insert( lStr , aArg4 );
5206  insert( lStr , aArg5 );
5207  insert( lStr , aArg6 );
5208  insert( lStr , aArg7 );
5209  insert( lStr , aArg8 );
5210  insert( lStr , aArg9 );
5211  insert( lStr , aArg10 );
5212  insert( lStr , aArg11 );
5213  insert( lStr , aArg12 );
5214  insert( lStr , aArg13 );
5215  insert( lStr , aArg14 );
5216  insert( lStr , aArg15 );
5217  insert( lStr , aArg16 );
5218  insert( lStr , aArg17 );
5219  insert( lStr , aArg18 );
5220  insert( lStr , aArg19 );
5221  insert( lStr , aArg20 );
5222  insert( lStr , aArg21 );
5223  insert( lStr , aArg22 );
5224  insert( lStr , aArg23 );
5225  insert( lStr , aArg24 );
5226  insert( lStr , aArg25 );
5227  insert( lStr , aArg26 );
5228  insert( lStr , aArg27 );
5229  insert( lStr , aArg28 );
5230  aInfo.tail();
5231  }
5232  #endif
5233  #endif
5234  #endif
5235  #endif
5236  #endif
5237 }
5238 
5239 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
5240 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
5241 {
5242  #ifndef LOGGING_EXCLUDE_FATAL
5243  #ifndef LOGGING_EXCLUDE_ERROR
5244  #ifndef LOGGING_EXCLUDE_WARNING
5245  #ifndef LOGGING_EXCLUDE_NOTICE
5246  #ifndef LOGGING_EXCLUDE_INFO
5247  if( LoggingIncludes( aInfo ) ){
5248  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5249  std::ostream& lStr( aInfo.stream() );
5250  aInfo.head();
5251  insert( lStr , aArg0 );
5252  insert( lStr , aArg1 );
5253  insert( lStr , aArg2 );
5254  insert( lStr , aArg3 );
5255  insert( lStr , aArg4 );
5256  insert( lStr , aArg5 );
5257  insert( lStr , aArg6 );
5258  insert( lStr , aArg7 );
5259  insert( lStr , aArg8 );
5260  insert( lStr , aArg9 );
5261  insert( lStr , aArg10 );
5262  insert( lStr , aArg11 );
5263  insert( lStr , aArg12 );
5264  insert( lStr , aArg13 );
5265  insert( lStr , aArg14 );
5266  insert( lStr , aArg15 );
5267  insert( lStr , aArg16 );
5268  insert( lStr , aArg17 );
5269  insert( lStr , aArg18 );
5270  insert( lStr , aArg19 );
5271  insert( lStr , aArg20 );
5272  insert( lStr , aArg21 );
5273  insert( lStr , aArg22 );
5274  insert( lStr , aArg23 );
5275  insert( lStr , aArg24 );
5276  insert( lStr , aArg25 );
5277  insert( lStr , aArg26 );
5278  insert( lStr , aArg27 );
5279  insert( lStr , aArg28 );
5280  insert( lStr , aArg29 );
5281  aInfo.tail();
5282  }
5283  #endif
5284  #endif
5285  #endif
5286  #endif
5287  #endif
5288 }
5289 
5290 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
5291 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
5292 {
5293  #ifndef LOGGING_EXCLUDE_FATAL
5294  #ifndef LOGGING_EXCLUDE_ERROR
5295  #ifndef LOGGING_EXCLUDE_WARNING
5296  #ifndef LOGGING_EXCLUDE_NOTICE
5297  #ifndef LOGGING_EXCLUDE_INFO
5298  if( LoggingIncludes( aInfo ) ){
5299  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5300  std::ostream& lStr( aInfo.stream() );
5301  aInfo.head();
5302  insert( lStr , aArg0 );
5303  insert( lStr , aArg1 );
5304  insert( lStr , aArg2 );
5305  insert( lStr , aArg3 );
5306  insert( lStr , aArg4 );
5307  insert( lStr , aArg5 );
5308  insert( lStr , aArg6 );
5309  insert( lStr , aArg7 );
5310  insert( lStr , aArg8 );
5311  insert( lStr , aArg9 );
5312  insert( lStr , aArg10 );
5313  insert( lStr , aArg11 );
5314  insert( lStr , aArg12 );
5315  insert( lStr , aArg13 );
5316  insert( lStr , aArg14 );
5317  insert( lStr , aArg15 );
5318  insert( lStr , aArg16 );
5319  insert( lStr , aArg17 );
5320  insert( lStr , aArg18 );
5321  insert( lStr , aArg19 );
5322  insert( lStr , aArg20 );
5323  insert( lStr , aArg21 );
5324  insert( lStr , aArg22 );
5325  insert( lStr , aArg23 );
5326  insert( lStr , aArg24 );
5327  insert( lStr , aArg25 );
5328  insert( lStr , aArg26 );
5329  insert( lStr , aArg27 );
5330  insert( lStr , aArg28 );
5331  insert( lStr , aArg29 );
5332  insert( lStr , aArg30 );
5333  aInfo.tail();
5334  }
5335  #endif
5336  #endif
5337  #endif
5338  #endif
5339  #endif
5340 }
5341 
5342 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
5343 void log ( InfoLevel& aInfo , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
5344 {
5345  #ifndef LOGGING_EXCLUDE_FATAL
5346  #ifndef LOGGING_EXCLUDE_ERROR
5347  #ifndef LOGGING_EXCLUDE_WARNING
5348  #ifndef LOGGING_EXCLUDE_NOTICE
5349  #ifndef LOGGING_EXCLUDE_INFO
5350  if( LoggingIncludes( aInfo ) ){
5351  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5352  std::ostream& lStr( aInfo.stream() );
5353  aInfo.head();
5354  insert( lStr , aArg0 );
5355  insert( lStr , aArg1 );
5356  insert( lStr , aArg2 );
5357  insert( lStr , aArg3 );
5358  insert( lStr , aArg4 );
5359  insert( lStr , aArg5 );
5360  insert( lStr , aArg6 );
5361  insert( lStr , aArg7 );
5362  insert( lStr , aArg8 );
5363  insert( lStr , aArg9 );
5364  insert( lStr , aArg10 );
5365  insert( lStr , aArg11 );
5366  insert( lStr , aArg12 );
5367  insert( lStr , aArg13 );
5368  insert( lStr , aArg14 );
5369  insert( lStr , aArg15 );
5370  insert( lStr , aArg16 );
5371  insert( lStr , aArg17 );
5372  insert( lStr , aArg18 );
5373  insert( lStr , aArg19 );
5374  insert( lStr , aArg20 );
5375  insert( lStr , aArg21 );
5376  insert( lStr , aArg22 );
5377  insert( lStr , aArg23 );
5378  insert( lStr , aArg24 );
5379  insert( lStr , aArg25 );
5380  insert( lStr , aArg26 );
5381  insert( lStr , aArg27 );
5382  insert( lStr , aArg28 );
5383  insert( lStr , aArg29 );
5384  insert( lStr , aArg30 );
5385  insert( lStr , aArg31 );
5386  aInfo.tail();
5387  }
5388  #endif
5389  #endif
5390  #endif
5391  #endif
5392  #endif
5393 }
5394 
5395 // ======================================================================================================================================================
5396 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
5397 // ======================================================================================================================================================
5398 
5399 template< typename T0 >
5400 void log ( DebugLevel& aDebug , const T0& aArg0 )
5401 {
5402  #ifndef LOGGING_EXCLUDE_FATAL
5403  #ifndef LOGGING_EXCLUDE_ERROR
5404  #ifndef LOGGING_EXCLUDE_WARNING
5405  #ifndef LOGGING_EXCLUDE_NOTICE
5406  #ifndef LOGGING_EXCLUDE_INFO
5407  #ifndef LOGGING_EXCLUDE_DEBUG
5408  if( LoggingIncludes( aDebug ) ){
5409  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5410  std::ostream& lStr( aDebug.stream() );
5411  aDebug.head();
5412  insert( lStr , aArg0 );
5413  aDebug.tail();
5414  }
5415  #endif
5416  #endif
5417  #endif
5418  #endif
5419  #endif
5420  #endif
5421 }
5422 
5423 template< typename T0 , typename T1 >
5424 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 )
5425 {
5426  #ifndef LOGGING_EXCLUDE_FATAL
5427  #ifndef LOGGING_EXCLUDE_ERROR
5428  #ifndef LOGGING_EXCLUDE_WARNING
5429  #ifndef LOGGING_EXCLUDE_NOTICE
5430  #ifndef LOGGING_EXCLUDE_INFO
5431  #ifndef LOGGING_EXCLUDE_DEBUG
5432  if( LoggingIncludes( aDebug ) ){
5433  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5434  std::ostream& lStr( aDebug.stream() );
5435  aDebug.head();
5436  insert( lStr , aArg0 );
5437  insert( lStr , aArg1 );
5438  aDebug.tail();
5439  }
5440  #endif
5441  #endif
5442  #endif
5443  #endif
5444  #endif
5445  #endif
5446 }
5447 
5448 template< typename T0 , typename T1 , typename T2 >
5449 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
5450 {
5451  #ifndef LOGGING_EXCLUDE_FATAL
5452  #ifndef LOGGING_EXCLUDE_ERROR
5453  #ifndef LOGGING_EXCLUDE_WARNING
5454  #ifndef LOGGING_EXCLUDE_NOTICE
5455  #ifndef LOGGING_EXCLUDE_INFO
5456  #ifndef LOGGING_EXCLUDE_DEBUG
5457  if( LoggingIncludes( aDebug ) ){
5458  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5459  std::ostream& lStr( aDebug.stream() );
5460  aDebug.head();
5461  insert( lStr , aArg0 );
5462  insert( lStr , aArg1 );
5463  insert( lStr , aArg2 );
5464  aDebug.tail();
5465  }
5466  #endif
5467  #endif
5468  #endif
5469  #endif
5470  #endif
5471  #endif
5472 }
5473 
5474 template< typename T0 , typename T1 , typename T2 , typename T3 >
5475 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
5476 {
5477  #ifndef LOGGING_EXCLUDE_FATAL
5478  #ifndef LOGGING_EXCLUDE_ERROR
5479  #ifndef LOGGING_EXCLUDE_WARNING
5480  #ifndef LOGGING_EXCLUDE_NOTICE
5481  #ifndef LOGGING_EXCLUDE_INFO
5482  #ifndef LOGGING_EXCLUDE_DEBUG
5483  if( LoggingIncludes( aDebug ) ){
5484  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5485  std::ostream& lStr( aDebug.stream() );
5486  aDebug.head();
5487  insert( lStr , aArg0 );
5488  insert( lStr , aArg1 );
5489  insert( lStr , aArg2 );
5490  insert( lStr , aArg3 );
5491  aDebug.tail();
5492  }
5493  #endif
5494  #endif
5495  #endif
5496  #endif
5497  #endif
5498  #endif
5499 }
5500 
5501 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
5502 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
5503 {
5504  #ifndef LOGGING_EXCLUDE_FATAL
5505  #ifndef LOGGING_EXCLUDE_ERROR
5506  #ifndef LOGGING_EXCLUDE_WARNING
5507  #ifndef LOGGING_EXCLUDE_NOTICE
5508  #ifndef LOGGING_EXCLUDE_INFO
5509  #ifndef LOGGING_EXCLUDE_DEBUG
5510  if( LoggingIncludes( aDebug ) ){
5511  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5512  std::ostream& lStr( aDebug.stream() );
5513  aDebug.head();
5514  insert( lStr , aArg0 );
5515  insert( lStr , aArg1 );
5516  insert( lStr , aArg2 );
5517  insert( lStr , aArg3 );
5518  insert( lStr , aArg4 );
5519  aDebug.tail();
5520  }
5521  #endif
5522  #endif
5523  #endif
5524  #endif
5525  #endif
5526  #endif
5527 }
5528 
5529 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
5530 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
5531 {
5532  #ifndef LOGGING_EXCLUDE_FATAL
5533  #ifndef LOGGING_EXCLUDE_ERROR
5534  #ifndef LOGGING_EXCLUDE_WARNING
5535  #ifndef LOGGING_EXCLUDE_NOTICE
5536  #ifndef LOGGING_EXCLUDE_INFO
5537  #ifndef LOGGING_EXCLUDE_DEBUG
5538  if( LoggingIncludes( aDebug ) ){
5539  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5540  std::ostream& lStr( aDebug.stream() );
5541  aDebug.head();
5542  insert( lStr , aArg0 );
5543  insert( lStr , aArg1 );
5544  insert( lStr , aArg2 );
5545  insert( lStr , aArg3 );
5546  insert( lStr , aArg4 );
5547  insert( lStr , aArg5 );
5548  aDebug.tail();
5549  }
5550  #endif
5551  #endif
5552  #endif
5553  #endif
5554  #endif
5555  #endif
5556 }
5557 
5558 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
5559 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
5560 {
5561  #ifndef LOGGING_EXCLUDE_FATAL
5562  #ifndef LOGGING_EXCLUDE_ERROR
5563  #ifndef LOGGING_EXCLUDE_WARNING
5564  #ifndef LOGGING_EXCLUDE_NOTICE
5565  #ifndef LOGGING_EXCLUDE_INFO
5566  #ifndef LOGGING_EXCLUDE_DEBUG
5567  if( LoggingIncludes( aDebug ) ){
5568  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5569  std::ostream& lStr( aDebug.stream() );
5570  aDebug.head();
5571  insert( lStr , aArg0 );
5572  insert( lStr , aArg1 );
5573  insert( lStr , aArg2 );
5574  insert( lStr , aArg3 );
5575  insert( lStr , aArg4 );
5576  insert( lStr , aArg5 );
5577  insert( lStr , aArg6 );
5578  aDebug.tail();
5579  }
5580  #endif
5581  #endif
5582  #endif
5583  #endif
5584  #endif
5585  #endif
5586 }
5587 
5588 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
5589 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
5590 {
5591  #ifndef LOGGING_EXCLUDE_FATAL
5592  #ifndef LOGGING_EXCLUDE_ERROR
5593  #ifndef LOGGING_EXCLUDE_WARNING
5594  #ifndef LOGGING_EXCLUDE_NOTICE
5595  #ifndef LOGGING_EXCLUDE_INFO
5596  #ifndef LOGGING_EXCLUDE_DEBUG
5597  if( LoggingIncludes( aDebug ) ){
5598  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5599  std::ostream& lStr( aDebug.stream() );
5600  aDebug.head();
5601  insert( lStr , aArg0 );
5602  insert( lStr , aArg1 );
5603  insert( lStr , aArg2 );
5604  insert( lStr , aArg3 );
5605  insert( lStr , aArg4 );
5606  insert( lStr , aArg5 );
5607  insert( lStr , aArg6 );
5608  insert( lStr , aArg7 );
5609  aDebug.tail();
5610  }
5611  #endif
5612  #endif
5613  #endif
5614  #endif
5615  #endif
5616  #endif
5617 }
5618 
5619 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
5620 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
5621 {
5622  #ifndef LOGGING_EXCLUDE_FATAL
5623  #ifndef LOGGING_EXCLUDE_ERROR
5624  #ifndef LOGGING_EXCLUDE_WARNING
5625  #ifndef LOGGING_EXCLUDE_NOTICE
5626  #ifndef LOGGING_EXCLUDE_INFO
5627  #ifndef LOGGING_EXCLUDE_DEBUG
5628  if( LoggingIncludes( aDebug ) ){
5629  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5630  std::ostream& lStr( aDebug.stream() );
5631  aDebug.head();
5632  insert( lStr , aArg0 );
5633  insert( lStr , aArg1 );
5634  insert( lStr , aArg2 );
5635  insert( lStr , aArg3 );
5636  insert( lStr , aArg4 );
5637  insert( lStr , aArg5 );
5638  insert( lStr , aArg6 );
5639  insert( lStr , aArg7 );
5640  insert( lStr , aArg8 );
5641  aDebug.tail();
5642  }
5643  #endif
5644  #endif
5645  #endif
5646  #endif
5647  #endif
5648  #endif
5649 }
5650 
5651 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
5652 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
5653 {
5654  #ifndef LOGGING_EXCLUDE_FATAL
5655  #ifndef LOGGING_EXCLUDE_ERROR
5656  #ifndef LOGGING_EXCLUDE_WARNING
5657  #ifndef LOGGING_EXCLUDE_NOTICE
5658  #ifndef LOGGING_EXCLUDE_INFO
5659  #ifndef LOGGING_EXCLUDE_DEBUG
5660  if( LoggingIncludes( aDebug ) ){
5661  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5662  std::ostream& lStr( aDebug.stream() );
5663  aDebug.head();
5664  insert( lStr , aArg0 );
5665  insert( lStr , aArg1 );
5666  insert( lStr , aArg2 );
5667  insert( lStr , aArg3 );
5668  insert( lStr , aArg4 );
5669  insert( lStr , aArg5 );
5670  insert( lStr , aArg6 );
5671  insert( lStr , aArg7 );
5672  insert( lStr , aArg8 );
5673  insert( lStr , aArg9 );
5674  aDebug.tail();
5675  }
5676  #endif
5677  #endif
5678  #endif
5679  #endif
5680  #endif
5681  #endif
5682 }
5683 
5684 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
5685 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
5686 {
5687  #ifndef LOGGING_EXCLUDE_FATAL
5688  #ifndef LOGGING_EXCLUDE_ERROR
5689  #ifndef LOGGING_EXCLUDE_WARNING
5690  #ifndef LOGGING_EXCLUDE_NOTICE
5691  #ifndef LOGGING_EXCLUDE_INFO
5692  #ifndef LOGGING_EXCLUDE_DEBUG
5693  if( LoggingIncludes( aDebug ) ){
5694  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5695  std::ostream& lStr( aDebug.stream() );
5696  aDebug.head();
5697  insert( lStr , aArg0 );
5698  insert( lStr , aArg1 );
5699  insert( lStr , aArg2 );
5700  insert( lStr , aArg3 );
5701  insert( lStr , aArg4 );
5702  insert( lStr , aArg5 );
5703  insert( lStr , aArg6 );
5704  insert( lStr , aArg7 );
5705  insert( lStr , aArg8 );
5706  insert( lStr , aArg9 );
5707  insert( lStr , aArg10 );
5708  aDebug.tail();
5709  }
5710  #endif
5711  #endif
5712  #endif
5713  #endif
5714  #endif
5715  #endif
5716 }
5717 
5718 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
5719 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
5720 {
5721  #ifndef LOGGING_EXCLUDE_FATAL
5722  #ifndef LOGGING_EXCLUDE_ERROR
5723  #ifndef LOGGING_EXCLUDE_WARNING
5724  #ifndef LOGGING_EXCLUDE_NOTICE
5725  #ifndef LOGGING_EXCLUDE_INFO
5726  #ifndef LOGGING_EXCLUDE_DEBUG
5727  if( LoggingIncludes( aDebug ) ){
5728  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5729  std::ostream& lStr( aDebug.stream() );
5730  aDebug.head();
5731  insert( lStr , aArg0 );
5732  insert( lStr , aArg1 );
5733  insert( lStr , aArg2 );
5734  insert( lStr , aArg3 );
5735  insert( lStr , aArg4 );
5736  insert( lStr , aArg5 );
5737  insert( lStr , aArg6 );
5738  insert( lStr , aArg7 );
5739  insert( lStr , aArg8 );
5740  insert( lStr , aArg9 );
5741  insert( lStr , aArg10 );
5742  insert( lStr , aArg11 );
5743  aDebug.tail();
5744  }
5745  #endif
5746  #endif
5747  #endif
5748  #endif
5749  #endif
5750  #endif
5751 }
5752 
5753 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
5754 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
5755 {
5756  #ifndef LOGGING_EXCLUDE_FATAL
5757  #ifndef LOGGING_EXCLUDE_ERROR
5758  #ifndef LOGGING_EXCLUDE_WARNING
5759  #ifndef LOGGING_EXCLUDE_NOTICE
5760  #ifndef LOGGING_EXCLUDE_INFO
5761  #ifndef LOGGING_EXCLUDE_DEBUG
5762  if( LoggingIncludes( aDebug ) ){
5763  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5764  std::ostream& lStr( aDebug.stream() );
5765  aDebug.head();
5766  insert( lStr , aArg0 );
5767  insert( lStr , aArg1 );
5768  insert( lStr , aArg2 );
5769  insert( lStr , aArg3 );
5770  insert( lStr , aArg4 );
5771  insert( lStr , aArg5 );
5772  insert( lStr , aArg6 );
5773  insert( lStr , aArg7 );
5774  insert( lStr , aArg8 );
5775  insert( lStr , aArg9 );
5776  insert( lStr , aArg10 );
5777  insert( lStr , aArg11 );
5778  insert( lStr , aArg12 );
5779  aDebug.tail();
5780  }
5781  #endif
5782  #endif
5783  #endif
5784  #endif
5785  #endif
5786  #endif
5787 }
5788 
5789 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
5790 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
5791 {
5792  #ifndef LOGGING_EXCLUDE_FATAL
5793  #ifndef LOGGING_EXCLUDE_ERROR
5794  #ifndef LOGGING_EXCLUDE_WARNING
5795  #ifndef LOGGING_EXCLUDE_NOTICE
5796  #ifndef LOGGING_EXCLUDE_INFO
5797  #ifndef LOGGING_EXCLUDE_DEBUG
5798  if( LoggingIncludes( aDebug ) ){
5799  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5800  std::ostream& lStr( aDebug.stream() );
5801  aDebug.head();
5802  insert( lStr , aArg0 );
5803  insert( lStr , aArg1 );
5804  insert( lStr , aArg2 );
5805  insert( lStr , aArg3 );
5806  insert( lStr , aArg4 );
5807  insert( lStr , aArg5 );
5808  insert( lStr , aArg6 );
5809  insert( lStr , aArg7 );
5810  insert( lStr , aArg8 );
5811  insert( lStr , aArg9 );
5812  insert( lStr , aArg10 );
5813  insert( lStr , aArg11 );
5814  insert( lStr , aArg12 );
5815  insert( lStr , aArg13 );
5816  aDebug.tail();
5817  }
5818  #endif
5819  #endif
5820  #endif
5821  #endif
5822  #endif
5823  #endif
5824 }
5825 
5826 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
5827 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
5828 {
5829  #ifndef LOGGING_EXCLUDE_FATAL
5830  #ifndef LOGGING_EXCLUDE_ERROR
5831  #ifndef LOGGING_EXCLUDE_WARNING
5832  #ifndef LOGGING_EXCLUDE_NOTICE
5833  #ifndef LOGGING_EXCLUDE_INFO
5834  #ifndef LOGGING_EXCLUDE_DEBUG
5835  if( LoggingIncludes( aDebug ) ){
5836  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5837  std::ostream& lStr( aDebug.stream() );
5838  aDebug.head();
5839  insert( lStr , aArg0 );
5840  insert( lStr , aArg1 );
5841  insert( lStr , aArg2 );
5842  insert( lStr , aArg3 );
5843  insert( lStr , aArg4 );
5844  insert( lStr , aArg5 );
5845  insert( lStr , aArg6 );
5846  insert( lStr , aArg7 );
5847  insert( lStr , aArg8 );
5848  insert( lStr , aArg9 );
5849  insert( lStr , aArg10 );
5850  insert( lStr , aArg11 );
5851  insert( lStr , aArg12 );
5852  insert( lStr , aArg13 );
5853  insert( lStr , aArg14 );
5854  aDebug.tail();
5855  }
5856  #endif
5857  #endif
5858  #endif
5859  #endif
5860  #endif
5861  #endif
5862 }
5863 
5864 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
5865 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
5866 {
5867  #ifndef LOGGING_EXCLUDE_FATAL
5868  #ifndef LOGGING_EXCLUDE_ERROR
5869  #ifndef LOGGING_EXCLUDE_WARNING
5870  #ifndef LOGGING_EXCLUDE_NOTICE
5871  #ifndef LOGGING_EXCLUDE_INFO
5872  #ifndef LOGGING_EXCLUDE_DEBUG
5873  if( LoggingIncludes( aDebug ) ){
5874  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5875  std::ostream& lStr( aDebug.stream() );
5876  aDebug.head();
5877  insert( lStr , aArg0 );
5878  insert( lStr , aArg1 );
5879  insert( lStr , aArg2 );
5880  insert( lStr , aArg3 );
5881  insert( lStr , aArg4 );
5882  insert( lStr , aArg5 );
5883  insert( lStr , aArg6 );
5884  insert( lStr , aArg7 );
5885  insert( lStr , aArg8 );
5886  insert( lStr , aArg9 );
5887  insert( lStr , aArg10 );
5888  insert( lStr , aArg11 );
5889  insert( lStr , aArg12 );
5890  insert( lStr , aArg13 );
5891  insert( lStr , aArg14 );
5892  insert( lStr , aArg15 );
5893  aDebug.tail();
5894  }
5895  #endif
5896  #endif
5897  #endif
5898  #endif
5899  #endif
5900  #endif
5901 }
5902 
5903 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
5904 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
5905 {
5906  #ifndef LOGGING_EXCLUDE_FATAL
5907  #ifndef LOGGING_EXCLUDE_ERROR
5908  #ifndef LOGGING_EXCLUDE_WARNING
5909  #ifndef LOGGING_EXCLUDE_NOTICE
5910  #ifndef LOGGING_EXCLUDE_INFO
5911  #ifndef LOGGING_EXCLUDE_DEBUG
5912  if( LoggingIncludes( aDebug ) ){
5913  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5914  std::ostream& lStr( aDebug.stream() );
5915  aDebug.head();
5916  insert( lStr , aArg0 );
5917  insert( lStr , aArg1 );
5918  insert( lStr , aArg2 );
5919  insert( lStr , aArg3 );
5920  insert( lStr , aArg4 );
5921  insert( lStr , aArg5 );
5922  insert( lStr , aArg6 );
5923  insert( lStr , aArg7 );
5924  insert( lStr , aArg8 );
5925  insert( lStr , aArg9 );
5926  insert( lStr , aArg10 );
5927  insert( lStr , aArg11 );
5928  insert( lStr , aArg12 );
5929  insert( lStr , aArg13 );
5930  insert( lStr , aArg14 );
5931  insert( lStr , aArg15 );
5932  insert( lStr , aArg16 );
5933  aDebug.tail();
5934  }
5935  #endif
5936  #endif
5937  #endif
5938  #endif
5939  #endif
5940  #endif
5941 }
5942 
5943 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
5944 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
5945 {
5946  #ifndef LOGGING_EXCLUDE_FATAL
5947  #ifndef LOGGING_EXCLUDE_ERROR
5948  #ifndef LOGGING_EXCLUDE_WARNING
5949  #ifndef LOGGING_EXCLUDE_NOTICE
5950  #ifndef LOGGING_EXCLUDE_INFO
5951  #ifndef LOGGING_EXCLUDE_DEBUG
5952  if( LoggingIncludes( aDebug ) ){
5953  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5954  std::ostream& lStr( aDebug.stream() );
5955  aDebug.head();
5956  insert( lStr , aArg0 );
5957  insert( lStr , aArg1 );
5958  insert( lStr , aArg2 );
5959  insert( lStr , aArg3 );
5960  insert( lStr , aArg4 );
5961  insert( lStr , aArg5 );
5962  insert( lStr , aArg6 );
5963  insert( lStr , aArg7 );
5964  insert( lStr , aArg8 );
5965  insert( lStr , aArg9 );
5966  insert( lStr , aArg10 );
5967  insert( lStr , aArg11 );
5968  insert( lStr , aArg12 );
5969  insert( lStr , aArg13 );
5970  insert( lStr , aArg14 );
5971  insert( lStr , aArg15 );
5972  insert( lStr , aArg16 );
5973  insert( lStr , aArg17 );
5974  aDebug.tail();
5975  }
5976  #endif
5977  #endif
5978  #endif
5979  #endif
5980  #endif
5981  #endif
5982 }
5983 
5984 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
5985 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
5986 {
5987  #ifndef LOGGING_EXCLUDE_FATAL
5988  #ifndef LOGGING_EXCLUDE_ERROR
5989  #ifndef LOGGING_EXCLUDE_WARNING
5990  #ifndef LOGGING_EXCLUDE_NOTICE
5991  #ifndef LOGGING_EXCLUDE_INFO
5992  #ifndef LOGGING_EXCLUDE_DEBUG
5993  if( LoggingIncludes( aDebug ) ){
5994  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
5995  std::ostream& lStr( aDebug.stream() );
5996  aDebug.head();
5997  insert( lStr , aArg0 );
5998  insert( lStr , aArg1 );
5999  insert( lStr , aArg2 );
6000  insert( lStr , aArg3 );
6001  insert( lStr , aArg4 );
6002  insert( lStr , aArg5 );
6003  insert( lStr , aArg6 );
6004  insert( lStr , aArg7 );
6005  insert( lStr , aArg8 );
6006  insert( lStr , aArg9 );
6007  insert( lStr , aArg10 );
6008  insert( lStr , aArg11 );
6009  insert( lStr , aArg12 );
6010  insert( lStr , aArg13 );
6011  insert( lStr , aArg14 );
6012  insert( lStr , aArg15 );
6013  insert( lStr , aArg16 );
6014  insert( lStr , aArg17 );
6015  insert( lStr , aArg18 );
6016  aDebug.tail();
6017  }
6018  #endif
6019  #endif
6020  #endif
6021  #endif
6022  #endif
6023  #endif
6024 }
6025 
6026 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
6027 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
6028 {
6029  #ifndef LOGGING_EXCLUDE_FATAL
6030  #ifndef LOGGING_EXCLUDE_ERROR
6031  #ifndef LOGGING_EXCLUDE_WARNING
6032  #ifndef LOGGING_EXCLUDE_NOTICE
6033  #ifndef LOGGING_EXCLUDE_INFO
6034  #ifndef LOGGING_EXCLUDE_DEBUG
6035  if( LoggingIncludes( aDebug ) ){
6036  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6037  std::ostream& lStr( aDebug.stream() );
6038  aDebug.head();
6039  insert( lStr , aArg0 );
6040  insert( lStr , aArg1 );
6041  insert( lStr , aArg2 );
6042  insert( lStr , aArg3 );
6043  insert( lStr , aArg4 );
6044  insert( lStr , aArg5 );
6045  insert( lStr , aArg6 );
6046  insert( lStr , aArg7 );
6047  insert( lStr , aArg8 );
6048  insert( lStr , aArg9 );
6049  insert( lStr , aArg10 );
6050  insert( lStr , aArg11 );
6051  insert( lStr , aArg12 );
6052  insert( lStr , aArg13 );
6053  insert( lStr , aArg14 );
6054  insert( lStr , aArg15 );
6055  insert( lStr , aArg16 );
6056  insert( lStr , aArg17 );
6057  insert( lStr , aArg18 );
6058  insert( lStr , aArg19 );
6059  aDebug.tail();
6060  }
6061  #endif
6062  #endif
6063  #endif
6064  #endif
6065  #endif
6066  #endif
6067 }
6068 
6069 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
6070 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
6071 {
6072  #ifndef LOGGING_EXCLUDE_FATAL
6073  #ifndef LOGGING_EXCLUDE_ERROR
6074  #ifndef LOGGING_EXCLUDE_WARNING
6075  #ifndef LOGGING_EXCLUDE_NOTICE
6076  #ifndef LOGGING_EXCLUDE_INFO
6077  #ifndef LOGGING_EXCLUDE_DEBUG
6078  if( LoggingIncludes( aDebug ) ){
6079  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6080  std::ostream& lStr( aDebug.stream() );
6081  aDebug.head();
6082  insert( lStr , aArg0 );
6083  insert( lStr , aArg1 );
6084  insert( lStr , aArg2 );
6085  insert( lStr , aArg3 );
6086  insert( lStr , aArg4 );
6087  insert( lStr , aArg5 );
6088  insert( lStr , aArg6 );
6089  insert( lStr , aArg7 );
6090  insert( lStr , aArg8 );
6091  insert( lStr , aArg9 );
6092  insert( lStr , aArg10 );
6093  insert( lStr , aArg11 );
6094  insert( lStr , aArg12 );
6095  insert( lStr , aArg13 );
6096  insert( lStr , aArg14 );
6097  insert( lStr , aArg15 );
6098  insert( lStr , aArg16 );
6099  insert( lStr , aArg17 );
6100  insert( lStr , aArg18 );
6101  insert( lStr , aArg19 );
6102  insert( lStr , aArg20 );
6103  aDebug.tail();
6104  }
6105  #endif
6106  #endif
6107  #endif
6108  #endif
6109  #endif
6110  #endif
6111 }
6112 
6113 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
6114 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
6115 {
6116  #ifndef LOGGING_EXCLUDE_FATAL
6117  #ifndef LOGGING_EXCLUDE_ERROR
6118  #ifndef LOGGING_EXCLUDE_WARNING
6119  #ifndef LOGGING_EXCLUDE_NOTICE
6120  #ifndef LOGGING_EXCLUDE_INFO
6121  #ifndef LOGGING_EXCLUDE_DEBUG
6122  if( LoggingIncludes( aDebug ) ){
6123  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6124  std::ostream& lStr( aDebug.stream() );
6125  aDebug.head();
6126  insert( lStr , aArg0 );
6127  insert( lStr , aArg1 );
6128  insert( lStr , aArg2 );
6129  insert( lStr , aArg3 );
6130  insert( lStr , aArg4 );
6131  insert( lStr , aArg5 );
6132  insert( lStr , aArg6 );
6133  insert( lStr , aArg7 );
6134  insert( lStr , aArg8 );
6135  insert( lStr , aArg9 );
6136  insert( lStr , aArg10 );
6137  insert( lStr , aArg11 );
6138  insert( lStr , aArg12 );
6139  insert( lStr , aArg13 );
6140  insert( lStr , aArg14 );
6141  insert( lStr , aArg15 );
6142  insert( lStr , aArg16 );
6143  insert( lStr , aArg17 );
6144  insert( lStr , aArg18 );
6145  insert( lStr , aArg19 );
6146  insert( lStr , aArg20 );
6147  insert( lStr , aArg21 );
6148  aDebug.tail();
6149  }
6150  #endif
6151  #endif
6152  #endif
6153  #endif
6154  #endif
6155  #endif
6156 }
6157 
6158 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
6159 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
6160 {
6161  #ifndef LOGGING_EXCLUDE_FATAL
6162  #ifndef LOGGING_EXCLUDE_ERROR
6163  #ifndef LOGGING_EXCLUDE_WARNING
6164  #ifndef LOGGING_EXCLUDE_NOTICE
6165  #ifndef LOGGING_EXCLUDE_INFO
6166  #ifndef LOGGING_EXCLUDE_DEBUG
6167  if( LoggingIncludes( aDebug ) ){
6168  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6169  std::ostream& lStr( aDebug.stream() );
6170  aDebug.head();
6171  insert( lStr , aArg0 );
6172  insert( lStr , aArg1 );
6173  insert( lStr , aArg2 );
6174  insert( lStr , aArg3 );
6175  insert( lStr , aArg4 );
6176  insert( lStr , aArg5 );
6177  insert( lStr , aArg6 );
6178  insert( lStr , aArg7 );
6179  insert( lStr , aArg8 );
6180  insert( lStr , aArg9 );
6181  insert( lStr , aArg10 );
6182  insert( lStr , aArg11 );
6183  insert( lStr , aArg12 );
6184  insert( lStr , aArg13 );
6185  insert( lStr , aArg14 );
6186  insert( lStr , aArg15 );
6187  insert( lStr , aArg16 );
6188  insert( lStr , aArg17 );
6189  insert( lStr , aArg18 );
6190  insert( lStr , aArg19 );
6191  insert( lStr , aArg20 );
6192  insert( lStr , aArg21 );
6193  insert( lStr , aArg22 );
6194  aDebug.tail();
6195  }
6196  #endif
6197  #endif
6198  #endif
6199  #endif
6200  #endif
6201  #endif
6202 }
6203 
6204 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
6205 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
6206 {
6207  #ifndef LOGGING_EXCLUDE_FATAL
6208  #ifndef LOGGING_EXCLUDE_ERROR
6209  #ifndef LOGGING_EXCLUDE_WARNING
6210  #ifndef LOGGING_EXCLUDE_NOTICE
6211  #ifndef LOGGING_EXCLUDE_INFO
6212  #ifndef LOGGING_EXCLUDE_DEBUG
6213  if( LoggingIncludes( aDebug ) ){
6214  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6215  std::ostream& lStr( aDebug.stream() );
6216  aDebug.head();
6217  insert( lStr , aArg0 );
6218  insert( lStr , aArg1 );
6219  insert( lStr , aArg2 );
6220  insert( lStr , aArg3 );
6221  insert( lStr , aArg4 );
6222  insert( lStr , aArg5 );
6223  insert( lStr , aArg6 );
6224  insert( lStr , aArg7 );
6225  insert( lStr , aArg8 );
6226  insert( lStr , aArg9 );
6227  insert( lStr , aArg10 );
6228  insert( lStr , aArg11 );
6229  insert( lStr , aArg12 );
6230  insert( lStr , aArg13 );
6231  insert( lStr , aArg14 );
6232  insert( lStr , aArg15 );
6233  insert( lStr , aArg16 );
6234  insert( lStr , aArg17 );
6235  insert( lStr , aArg18 );
6236  insert( lStr , aArg19 );
6237  insert( lStr , aArg20 );
6238  insert( lStr , aArg21 );
6239  insert( lStr , aArg22 );
6240  insert( lStr , aArg23 );
6241  aDebug.tail();
6242  }
6243  #endif
6244  #endif
6245  #endif
6246  #endif
6247  #endif
6248  #endif
6249 }
6250 
6251 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
6252 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
6253 {
6254  #ifndef LOGGING_EXCLUDE_FATAL
6255  #ifndef LOGGING_EXCLUDE_ERROR
6256  #ifndef LOGGING_EXCLUDE_WARNING
6257  #ifndef LOGGING_EXCLUDE_NOTICE
6258  #ifndef LOGGING_EXCLUDE_INFO
6259  #ifndef LOGGING_EXCLUDE_DEBUG
6260  if( LoggingIncludes( aDebug ) ){
6261  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6262  std::ostream& lStr( aDebug.stream() );
6263  aDebug.head();
6264  insert( lStr , aArg0 );
6265  insert( lStr , aArg1 );
6266  insert( lStr , aArg2 );
6267  insert( lStr , aArg3 );
6268  insert( lStr , aArg4 );
6269  insert( lStr , aArg5 );
6270  insert( lStr , aArg6 );
6271  insert( lStr , aArg7 );
6272  insert( lStr , aArg8 );
6273  insert( lStr , aArg9 );
6274  insert( lStr , aArg10 );
6275  insert( lStr , aArg11 );
6276  insert( lStr , aArg12 );
6277  insert( lStr , aArg13 );
6278  insert( lStr , aArg14 );
6279  insert( lStr , aArg15 );
6280  insert( lStr , aArg16 );
6281  insert( lStr , aArg17 );
6282  insert( lStr , aArg18 );
6283  insert( lStr , aArg19 );
6284  insert( lStr , aArg20 );
6285  insert( lStr , aArg21 );
6286  insert( lStr , aArg22 );
6287  insert( lStr , aArg23 );
6288  insert( lStr , aArg24 );
6289  aDebug.tail();
6290  }
6291  #endif
6292  #endif
6293  #endif
6294  #endif
6295  #endif
6296  #endif
6297 }
6298 
6299 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
6300 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
6301 {
6302  #ifndef LOGGING_EXCLUDE_FATAL
6303  #ifndef LOGGING_EXCLUDE_ERROR
6304  #ifndef LOGGING_EXCLUDE_WARNING
6305  #ifndef LOGGING_EXCLUDE_NOTICE
6306  #ifndef LOGGING_EXCLUDE_INFO
6307  #ifndef LOGGING_EXCLUDE_DEBUG
6308  if( LoggingIncludes( aDebug ) ){
6309  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6310  std::ostream& lStr( aDebug.stream() );
6311  aDebug.head();
6312  insert( lStr , aArg0 );
6313  insert( lStr , aArg1 );
6314  insert( lStr , aArg2 );
6315  insert( lStr , aArg3 );
6316  insert( lStr , aArg4 );
6317  insert( lStr , aArg5 );
6318  insert( lStr , aArg6 );
6319  insert( lStr , aArg7 );
6320  insert( lStr , aArg8 );
6321  insert( lStr , aArg9 );
6322  insert( lStr , aArg10 );
6323  insert( lStr , aArg11 );
6324  insert( lStr , aArg12 );
6325  insert( lStr , aArg13 );
6326  insert( lStr , aArg14 );
6327  insert( lStr , aArg15 );
6328  insert( lStr , aArg16 );
6329  insert( lStr , aArg17 );
6330  insert( lStr , aArg18 );
6331  insert( lStr , aArg19 );
6332  insert( lStr , aArg20 );
6333  insert( lStr , aArg21 );
6334  insert( lStr , aArg22 );
6335  insert( lStr , aArg23 );
6336  insert( lStr , aArg24 );
6337  insert( lStr , aArg25 );
6338  aDebug.tail();
6339  }
6340  #endif
6341  #endif
6342  #endif
6343  #endif
6344  #endif
6345  #endif
6346 }
6347 
6348 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
6349 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
6350 {
6351  #ifndef LOGGING_EXCLUDE_FATAL
6352  #ifndef LOGGING_EXCLUDE_ERROR
6353  #ifndef LOGGING_EXCLUDE_WARNING
6354  #ifndef LOGGING_EXCLUDE_NOTICE
6355  #ifndef LOGGING_EXCLUDE_INFO
6356  #ifndef LOGGING_EXCLUDE_DEBUG
6357  if( LoggingIncludes( aDebug ) ){
6358  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6359  std::ostream& lStr( aDebug.stream() );
6360  aDebug.head();
6361  insert( lStr , aArg0 );
6362  insert( lStr , aArg1 );
6363  insert( lStr , aArg2 );
6364  insert( lStr , aArg3 );
6365  insert( lStr , aArg4 );
6366  insert( lStr , aArg5 );
6367  insert( lStr , aArg6 );
6368  insert( lStr , aArg7 );
6369  insert( lStr , aArg8 );
6370  insert( lStr , aArg9 );
6371  insert( lStr , aArg10 );
6372  insert( lStr , aArg11 );
6373  insert( lStr , aArg12 );
6374  insert( lStr , aArg13 );
6375  insert( lStr , aArg14 );
6376  insert( lStr , aArg15 );
6377  insert( lStr , aArg16 );
6378  insert( lStr , aArg17 );
6379  insert( lStr , aArg18 );
6380  insert( lStr , aArg19 );
6381  insert( lStr , aArg20 );
6382  insert( lStr , aArg21 );
6383  insert( lStr , aArg22 );
6384  insert( lStr , aArg23 );
6385  insert( lStr , aArg24 );
6386  insert( lStr , aArg25 );
6387  insert( lStr , aArg26 );
6388  aDebug.tail();
6389  }
6390  #endif
6391  #endif
6392  #endif
6393  #endif
6394  #endif
6395  #endif
6396 }
6397 
6398 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
6399 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
6400 {
6401  #ifndef LOGGING_EXCLUDE_FATAL
6402  #ifndef LOGGING_EXCLUDE_ERROR
6403  #ifndef LOGGING_EXCLUDE_WARNING
6404  #ifndef LOGGING_EXCLUDE_NOTICE
6405  #ifndef LOGGING_EXCLUDE_INFO
6406  #ifndef LOGGING_EXCLUDE_DEBUG
6407  if( LoggingIncludes( aDebug ) ){
6408  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6409  std::ostream& lStr( aDebug.stream() );
6410  aDebug.head();
6411  insert( lStr , aArg0 );
6412  insert( lStr , aArg1 );
6413  insert( lStr , aArg2 );
6414  insert( lStr , aArg3 );
6415  insert( lStr , aArg4 );
6416  insert( lStr , aArg5 );
6417  insert( lStr , aArg6 );
6418  insert( lStr , aArg7 );
6419  insert( lStr , aArg8 );
6420  insert( lStr , aArg9 );
6421  insert( lStr , aArg10 );
6422  insert( lStr , aArg11 );
6423  insert( lStr , aArg12 );
6424  insert( lStr , aArg13 );
6425  insert( lStr , aArg14 );
6426  insert( lStr , aArg15 );
6427  insert( lStr , aArg16 );
6428  insert( lStr , aArg17 );
6429  insert( lStr , aArg18 );
6430  insert( lStr , aArg19 );
6431  insert( lStr , aArg20 );
6432  insert( lStr , aArg21 );
6433  insert( lStr , aArg22 );
6434  insert( lStr , aArg23 );
6435  insert( lStr , aArg24 );
6436  insert( lStr , aArg25 );
6437  insert( lStr , aArg26 );
6438  insert( lStr , aArg27 );
6439  aDebug.tail();
6440  }
6441  #endif
6442  #endif
6443  #endif
6444  #endif
6445  #endif
6446  #endif
6447 }
6448 
6449 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
6450 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
6451 {
6452  #ifndef LOGGING_EXCLUDE_FATAL
6453  #ifndef LOGGING_EXCLUDE_ERROR
6454  #ifndef LOGGING_EXCLUDE_WARNING
6455  #ifndef LOGGING_EXCLUDE_NOTICE
6456  #ifndef LOGGING_EXCLUDE_INFO
6457  #ifndef LOGGING_EXCLUDE_DEBUG
6458  if( LoggingIncludes( aDebug ) ){
6459  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6460  std::ostream& lStr( aDebug.stream() );
6461  aDebug.head();
6462  insert( lStr , aArg0 );
6463  insert( lStr , aArg1 );
6464  insert( lStr , aArg2 );
6465  insert( lStr , aArg3 );
6466  insert( lStr , aArg4 );
6467  insert( lStr , aArg5 );
6468  insert( lStr , aArg6 );
6469  insert( lStr , aArg7 );
6470  insert( lStr , aArg8 );
6471  insert( lStr , aArg9 );
6472  insert( lStr , aArg10 );
6473  insert( lStr , aArg11 );
6474  insert( lStr , aArg12 );
6475  insert( lStr , aArg13 );
6476  insert( lStr , aArg14 );
6477  insert( lStr , aArg15 );
6478  insert( lStr , aArg16 );
6479  insert( lStr , aArg17 );
6480  insert( lStr , aArg18 );
6481  insert( lStr , aArg19 );
6482  insert( lStr , aArg20 );
6483  insert( lStr , aArg21 );
6484  insert( lStr , aArg22 );
6485  insert( lStr , aArg23 );
6486  insert( lStr , aArg24 );
6487  insert( lStr , aArg25 );
6488  insert( lStr , aArg26 );
6489  insert( lStr , aArg27 );
6490  insert( lStr , aArg28 );
6491  aDebug.tail();
6492  }
6493  #endif
6494  #endif
6495  #endif
6496  #endif
6497  #endif
6498  #endif
6499 }
6500 
6501 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
6502 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
6503 {
6504  #ifndef LOGGING_EXCLUDE_FATAL
6505  #ifndef LOGGING_EXCLUDE_ERROR
6506  #ifndef LOGGING_EXCLUDE_WARNING
6507  #ifndef LOGGING_EXCLUDE_NOTICE
6508  #ifndef LOGGING_EXCLUDE_INFO
6509  #ifndef LOGGING_EXCLUDE_DEBUG
6510  if( LoggingIncludes( aDebug ) ){
6511  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6512  std::ostream& lStr( aDebug.stream() );
6513  aDebug.head();
6514  insert( lStr , aArg0 );
6515  insert( lStr , aArg1 );
6516  insert( lStr , aArg2 );
6517  insert( lStr , aArg3 );
6518  insert( lStr , aArg4 );
6519  insert( lStr , aArg5 );
6520  insert( lStr , aArg6 );
6521  insert( lStr , aArg7 );
6522  insert( lStr , aArg8 );
6523  insert( lStr , aArg9 );
6524  insert( lStr , aArg10 );
6525  insert( lStr , aArg11 );
6526  insert( lStr , aArg12 );
6527  insert( lStr , aArg13 );
6528  insert( lStr , aArg14 );
6529  insert( lStr , aArg15 );
6530  insert( lStr , aArg16 );
6531  insert( lStr , aArg17 );
6532  insert( lStr , aArg18 );
6533  insert( lStr , aArg19 );
6534  insert( lStr , aArg20 );
6535  insert( lStr , aArg21 );
6536  insert( lStr , aArg22 );
6537  insert( lStr , aArg23 );
6538  insert( lStr , aArg24 );
6539  insert( lStr , aArg25 );
6540  insert( lStr , aArg26 );
6541  insert( lStr , aArg27 );
6542  insert( lStr , aArg28 );
6543  insert( lStr , aArg29 );
6544  aDebug.tail();
6545  }
6546  #endif
6547  #endif
6548  #endif
6549  #endif
6550  #endif
6551  #endif
6552 }
6553 
6554 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
6555 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
6556 {
6557  #ifndef LOGGING_EXCLUDE_FATAL
6558  #ifndef LOGGING_EXCLUDE_ERROR
6559  #ifndef LOGGING_EXCLUDE_WARNING
6560  #ifndef LOGGING_EXCLUDE_NOTICE
6561  #ifndef LOGGING_EXCLUDE_INFO
6562  #ifndef LOGGING_EXCLUDE_DEBUG
6563  if( LoggingIncludes( aDebug ) ){
6564  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6565  std::ostream& lStr( aDebug.stream() );
6566  aDebug.head();
6567  insert( lStr , aArg0 );
6568  insert( lStr , aArg1 );
6569  insert( lStr , aArg2 );
6570  insert( lStr , aArg3 );
6571  insert( lStr , aArg4 );
6572  insert( lStr , aArg5 );
6573  insert( lStr , aArg6 );
6574  insert( lStr , aArg7 );
6575  insert( lStr , aArg8 );
6576  insert( lStr , aArg9 );
6577  insert( lStr , aArg10 );
6578  insert( lStr , aArg11 );
6579  insert( lStr , aArg12 );
6580  insert( lStr , aArg13 );
6581  insert( lStr , aArg14 );
6582  insert( lStr , aArg15 );
6583  insert( lStr , aArg16 );
6584  insert( lStr , aArg17 );
6585  insert( lStr , aArg18 );
6586  insert( lStr , aArg19 );
6587  insert( lStr , aArg20 );
6588  insert( lStr , aArg21 );
6589  insert( lStr , aArg22 );
6590  insert( lStr , aArg23 );
6591  insert( lStr , aArg24 );
6592  insert( lStr , aArg25 );
6593  insert( lStr , aArg26 );
6594  insert( lStr , aArg27 );
6595  insert( lStr , aArg28 );
6596  insert( lStr , aArg29 );
6597  insert( lStr , aArg30 );
6598  aDebug.tail();
6599  }
6600  #endif
6601  #endif
6602  #endif
6603  #endif
6604  #endif
6605  #endif
6606 }
6607 
6608 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
6609 void log ( DebugLevel& aDebug , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
6610 {
6611  #ifndef LOGGING_EXCLUDE_FATAL
6612  #ifndef LOGGING_EXCLUDE_ERROR
6613  #ifndef LOGGING_EXCLUDE_WARNING
6614  #ifndef LOGGING_EXCLUDE_NOTICE
6615  #ifndef LOGGING_EXCLUDE_INFO
6616  #ifndef LOGGING_EXCLUDE_DEBUG
6617  if( LoggingIncludes( aDebug ) ){
6618  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6619  std::ostream& lStr( aDebug.stream() );
6620  aDebug.head();
6621  insert( lStr , aArg0 );
6622  insert( lStr , aArg1 );
6623  insert( lStr , aArg2 );
6624  insert( lStr , aArg3 );
6625  insert( lStr , aArg4 );
6626  insert( lStr , aArg5 );
6627  insert( lStr , aArg6 );
6628  insert( lStr , aArg7 );
6629  insert( lStr , aArg8 );
6630  insert( lStr , aArg9 );
6631  insert( lStr , aArg10 );
6632  insert( lStr , aArg11 );
6633  insert( lStr , aArg12 );
6634  insert( lStr , aArg13 );
6635  insert( lStr , aArg14 );
6636  insert( lStr , aArg15 );
6637  insert( lStr , aArg16 );
6638  insert( lStr , aArg17 );
6639  insert( lStr , aArg18 );
6640  insert( lStr , aArg19 );
6641  insert( lStr , aArg20 );
6642  insert( lStr , aArg21 );
6643  insert( lStr , aArg22 );
6644  insert( lStr , aArg23 );
6645  insert( lStr , aArg24 );
6646  insert( lStr , aArg25 );
6647  insert( lStr , aArg26 );
6648  insert( lStr , aArg27 );
6649  insert( lStr , aArg28 );
6650  insert( lStr , aArg29 );
6651  insert( lStr , aArg30 );
6652  insert( lStr , aArg31 );
6653  aDebug.tail();
6654  }
6655  #endif
6656  #endif
6657  #endif
6658  #endif
6659  #endif
6660  #endif
6661 }
6662 
6663 // ======================================================================================================================================================
6664 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
6665 // ======================================================================================================================================================
6666 
6667 template< typename T0 >
6668 void log ( exception::exception& aExc , const T0& aArg0 )
6669 {
6670  std::stringstream lStr;
6671  {
6672  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6673  insert( lStr , aArg0 );
6674  aExc.append( ( lStr.str() + "\n" ).c_str() );
6675  }
6676  log ( Error() , lStr.str() );
6677 }
6678 
6679 template< typename T0 , typename T1 >
6680 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 )
6681 {
6682  std::stringstream lStr;
6683  {
6684  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6685  insert( lStr , aArg0 );
6686  insert( lStr , aArg1 );
6687  aExc.append( ( lStr.str() + "\n" ).c_str() );
6688  }
6689  log ( Error() , lStr.str() );
6690 }
6691 
6692 template< typename T0 , typename T1 , typename T2 >
6693 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 )
6694 {
6695  std::stringstream lStr;
6696  {
6697  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6698  insert( lStr , aArg0 );
6699  insert( lStr , aArg1 );
6700  insert( lStr , aArg2 );
6701  aExc.append( ( lStr.str() + "\n" ).c_str() );
6702  }
6703  log ( Error() , lStr.str() );
6704 }
6705 
6706 template< typename T0 , typename T1 , typename T2 , typename T3 >
6707 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 )
6708 {
6709  std::stringstream lStr;
6710  {
6711  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6712  insert( lStr , aArg0 );
6713  insert( lStr , aArg1 );
6714  insert( lStr , aArg2 );
6715  insert( lStr , aArg3 );
6716  aExc.append( ( lStr.str() + "\n" ).c_str() );
6717  }
6718  log ( Error() , lStr.str() );
6719 }
6720 
6721 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
6722 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 )
6723 {
6724  std::stringstream lStr;
6725  {
6726  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6727  insert( lStr , aArg0 );
6728  insert( lStr , aArg1 );
6729  insert( lStr , aArg2 );
6730  insert( lStr , aArg3 );
6731  insert( lStr , aArg4 );
6732  aExc.append( ( lStr.str() + "\n" ).c_str() );
6733  }
6734  log ( Error() , lStr.str() );
6735 }
6736 
6737 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
6738 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 )
6739 {
6740  std::stringstream lStr;
6741  {
6742  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6743  insert( lStr , aArg0 );
6744  insert( lStr , aArg1 );
6745  insert( lStr , aArg2 );
6746  insert( lStr , aArg3 );
6747  insert( lStr , aArg4 );
6748  insert( lStr , aArg5 );
6749  aExc.append( ( lStr.str() + "\n" ).c_str() );
6750  }
6751  log ( Error() , lStr.str() );
6752 }
6753 
6754 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
6755 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 )
6756 {
6757  std::stringstream lStr;
6758  {
6759  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6760  insert( lStr , aArg0 );
6761  insert( lStr , aArg1 );
6762  insert( lStr , aArg2 );
6763  insert( lStr , aArg3 );
6764  insert( lStr , aArg4 );
6765  insert( lStr , aArg5 );
6766  insert( lStr , aArg6 );
6767  aExc.append( ( lStr.str() + "\n" ).c_str() );
6768  }
6769  log ( Error() , lStr.str() );
6770 }
6771 
6772 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
6773 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 )
6774 {
6775  std::stringstream lStr;
6776  {
6777  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6778  insert( lStr , aArg0 );
6779  insert( lStr , aArg1 );
6780  insert( lStr , aArg2 );
6781  insert( lStr , aArg3 );
6782  insert( lStr , aArg4 );
6783  insert( lStr , aArg5 );
6784  insert( lStr , aArg6 );
6785  insert( lStr , aArg7 );
6786  aExc.append( ( lStr.str() + "\n" ).c_str() );
6787  }
6788  log ( Error() , lStr.str() );
6789 }
6790 
6791 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
6792 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 )
6793 {
6794  std::stringstream lStr;
6795  {
6796  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6797  insert( lStr , aArg0 );
6798  insert( lStr , aArg1 );
6799  insert( lStr , aArg2 );
6800  insert( lStr , aArg3 );
6801  insert( lStr , aArg4 );
6802  insert( lStr , aArg5 );
6803  insert( lStr , aArg6 );
6804  insert( lStr , aArg7 );
6805  insert( lStr , aArg8 );
6806  aExc.append( ( lStr.str() + "\n" ).c_str() );
6807  }
6808  log ( Error() , lStr.str() );
6809 }
6810 
6811 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
6812 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 )
6813 {
6814  std::stringstream lStr;
6815  {
6816  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6817  insert( lStr , aArg0 );
6818  insert( lStr , aArg1 );
6819  insert( lStr , aArg2 );
6820  insert( lStr , aArg3 );
6821  insert( lStr , aArg4 );
6822  insert( lStr , aArg5 );
6823  insert( lStr , aArg6 );
6824  insert( lStr , aArg7 );
6825  insert( lStr , aArg8 );
6826  insert( lStr , aArg9 );
6827  aExc.append( ( lStr.str() + "\n" ).c_str() );
6828  }
6829  log ( Error() , lStr.str() );
6830 }
6831 
6832 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 >
6833 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 )
6834 {
6835  std::stringstream lStr;
6836  {
6837  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6838  insert( lStr , aArg0 );
6839  insert( lStr , aArg1 );
6840  insert( lStr , aArg2 );
6841  insert( lStr , aArg3 );
6842  insert( lStr , aArg4 );
6843  insert( lStr , aArg5 );
6844  insert( lStr , aArg6 );
6845  insert( lStr , aArg7 );
6846  insert( lStr , aArg8 );
6847  insert( lStr , aArg9 );
6848  insert( lStr , aArg10 );
6849  aExc.append( ( lStr.str() + "\n" ).c_str() );
6850  }
6851  log ( Error() , lStr.str() );
6852 }
6853 
6854 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 >
6855 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 )
6856 {
6857  std::stringstream lStr;
6858  {
6859  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6860  insert( lStr , aArg0 );
6861  insert( lStr , aArg1 );
6862  insert( lStr , aArg2 );
6863  insert( lStr , aArg3 );
6864  insert( lStr , aArg4 );
6865  insert( lStr , aArg5 );
6866  insert( lStr , aArg6 );
6867  insert( lStr , aArg7 );
6868  insert( lStr , aArg8 );
6869  insert( lStr , aArg9 );
6870  insert( lStr , aArg10 );
6871  insert( lStr , aArg11 );
6872  aExc.append( ( lStr.str() + "\n" ).c_str() );
6873  }
6874  log ( Error() , lStr.str() );
6875 }
6876 
6877 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 >
6878 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 )
6879 {
6880  std::stringstream lStr;
6881  {
6882  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6883  insert( lStr , aArg0 );
6884  insert( lStr , aArg1 );
6885  insert( lStr , aArg2 );
6886  insert( lStr , aArg3 );
6887  insert( lStr , aArg4 );
6888  insert( lStr , aArg5 );
6889  insert( lStr , aArg6 );
6890  insert( lStr , aArg7 );
6891  insert( lStr , aArg8 );
6892  insert( lStr , aArg9 );
6893  insert( lStr , aArg10 );
6894  insert( lStr , aArg11 );
6895  insert( lStr , aArg12 );
6896  aExc.append( ( lStr.str() + "\n" ).c_str() );
6897  }
6898  log ( Error() , lStr.str() );
6899 }
6900 
6901 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 >
6902 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 )
6903 {
6904  std::stringstream lStr;
6905  {
6906  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6907  insert( lStr , aArg0 );
6908  insert( lStr , aArg1 );
6909  insert( lStr , aArg2 );
6910  insert( lStr , aArg3 );
6911  insert( lStr , aArg4 );
6912  insert( lStr , aArg5 );
6913  insert( lStr , aArg6 );
6914  insert( lStr , aArg7 );
6915  insert( lStr , aArg8 );
6916  insert( lStr , aArg9 );
6917  insert( lStr , aArg10 );
6918  insert( lStr , aArg11 );
6919  insert( lStr , aArg12 );
6920  insert( lStr , aArg13 );
6921  aExc.append( ( lStr.str() + "\n" ).c_str() );
6922  }
6923  log ( Error() , lStr.str() );
6924 }
6925 
6926 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 >
6927 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 )
6928 {
6929  std::stringstream lStr;
6930  {
6931  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6932  insert( lStr , aArg0 );
6933  insert( lStr , aArg1 );
6934  insert( lStr , aArg2 );
6935  insert( lStr , aArg3 );
6936  insert( lStr , aArg4 );
6937  insert( lStr , aArg5 );
6938  insert( lStr , aArg6 );
6939  insert( lStr , aArg7 );
6940  insert( lStr , aArg8 );
6941  insert( lStr , aArg9 );
6942  insert( lStr , aArg10 );
6943  insert( lStr , aArg11 );
6944  insert( lStr , aArg12 );
6945  insert( lStr , aArg13 );
6946  insert( lStr , aArg14 );
6947  aExc.append( ( lStr.str() + "\n" ).c_str() );
6948  }
6949  log ( Error() , lStr.str() );
6950 }
6951 
6952 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 >
6953 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 )
6954 {
6955  std::stringstream lStr;
6956  {
6957  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6958  insert( lStr , aArg0 );
6959  insert( lStr , aArg1 );
6960  insert( lStr , aArg2 );
6961  insert( lStr , aArg3 );
6962  insert( lStr , aArg4 );
6963  insert( lStr , aArg5 );
6964  insert( lStr , aArg6 );
6965  insert( lStr , aArg7 );
6966  insert( lStr , aArg8 );
6967  insert( lStr , aArg9 );
6968  insert( lStr , aArg10 );
6969  insert( lStr , aArg11 );
6970  insert( lStr , aArg12 );
6971  insert( lStr , aArg13 );
6972  insert( lStr , aArg14 );
6973  insert( lStr , aArg15 );
6974  aExc.append( ( lStr.str() + "\n" ).c_str() );
6975  }
6976  log ( Error() , lStr.str() );
6977 }
6978 
6979 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 >
6980 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 )
6981 {
6982  std::stringstream lStr;
6983  {
6984  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
6985  insert( lStr , aArg0 );
6986  insert( lStr , aArg1 );
6987  insert( lStr , aArg2 );
6988  insert( lStr , aArg3 );
6989  insert( lStr , aArg4 );
6990  insert( lStr , aArg5 );
6991  insert( lStr , aArg6 );
6992  insert( lStr , aArg7 );
6993  insert( lStr , aArg8 );
6994  insert( lStr , aArg9 );
6995  insert( lStr , aArg10 );
6996  insert( lStr , aArg11 );
6997  insert( lStr , aArg12 );
6998  insert( lStr , aArg13 );
6999  insert( lStr , aArg14 );
7000  insert( lStr , aArg15 );
7001  insert( lStr , aArg16 );
7002  aExc.append( ( lStr.str() + "\n" ).c_str() );
7003  }
7004  log ( Error() , lStr.str() );
7005 }
7006 
7007 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 >
7008 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 )
7009 {
7010  std::stringstream lStr;
7011  {
7012  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7013  insert( lStr , aArg0 );
7014  insert( lStr , aArg1 );
7015  insert( lStr , aArg2 );
7016  insert( lStr , aArg3 );
7017  insert( lStr , aArg4 );
7018  insert( lStr , aArg5 );
7019  insert( lStr , aArg6 );
7020  insert( lStr , aArg7 );
7021  insert( lStr , aArg8 );
7022  insert( lStr , aArg9 );
7023  insert( lStr , aArg10 );
7024  insert( lStr , aArg11 );
7025  insert( lStr , aArg12 );
7026  insert( lStr , aArg13 );
7027  insert( lStr , aArg14 );
7028  insert( lStr , aArg15 );
7029  insert( lStr , aArg16 );
7030  insert( lStr , aArg17 );
7031  aExc.append( ( lStr.str() + "\n" ).c_str() );
7032  }
7033  log ( Error() , lStr.str() );
7034 }
7035 
7036 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 >
7037 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 )
7038 {
7039  std::stringstream lStr;
7040  {
7041  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7042  insert( lStr , aArg0 );
7043  insert( lStr , aArg1 );
7044  insert( lStr , aArg2 );
7045  insert( lStr , aArg3 );
7046  insert( lStr , aArg4 );
7047  insert( lStr , aArg5 );
7048  insert( lStr , aArg6 );
7049  insert( lStr , aArg7 );
7050  insert( lStr , aArg8 );
7051  insert( lStr , aArg9 );
7052  insert( lStr , aArg10 );
7053  insert( lStr , aArg11 );
7054  insert( lStr , aArg12 );
7055  insert( lStr , aArg13 );
7056  insert( lStr , aArg14 );
7057  insert( lStr , aArg15 );
7058  insert( lStr , aArg16 );
7059  insert( lStr , aArg17 );
7060  insert( lStr , aArg18 );
7061  aExc.append( ( lStr.str() + "\n" ).c_str() );
7062  }
7063  log ( Error() , lStr.str() );
7064 }
7065 
7066 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 >
7067 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 )
7068 {
7069  std::stringstream lStr;
7070  {
7071  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7072  insert( lStr , aArg0 );
7073  insert( lStr , aArg1 );
7074  insert( lStr , aArg2 );
7075  insert( lStr , aArg3 );
7076  insert( lStr , aArg4 );
7077  insert( lStr , aArg5 );
7078  insert( lStr , aArg6 );
7079  insert( lStr , aArg7 );
7080  insert( lStr , aArg8 );
7081  insert( lStr , aArg9 );
7082  insert( lStr , aArg10 );
7083  insert( lStr , aArg11 );
7084  insert( lStr , aArg12 );
7085  insert( lStr , aArg13 );
7086  insert( lStr , aArg14 );
7087  insert( lStr , aArg15 );
7088  insert( lStr , aArg16 );
7089  insert( lStr , aArg17 );
7090  insert( lStr , aArg18 );
7091  insert( lStr , aArg19 );
7092  aExc.append( ( lStr.str() + "\n" ).c_str() );
7093  }
7094  log ( Error() , lStr.str() );
7095 }
7096 
7097 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 >
7098 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 )
7099 {
7100  std::stringstream lStr;
7101  {
7102  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7103  insert( lStr , aArg0 );
7104  insert( lStr , aArg1 );
7105  insert( lStr , aArg2 );
7106  insert( lStr , aArg3 );
7107  insert( lStr , aArg4 );
7108  insert( lStr , aArg5 );
7109  insert( lStr , aArg6 );
7110  insert( lStr , aArg7 );
7111  insert( lStr , aArg8 );
7112  insert( lStr , aArg9 );
7113  insert( lStr , aArg10 );
7114  insert( lStr , aArg11 );
7115  insert( lStr , aArg12 );
7116  insert( lStr , aArg13 );
7117  insert( lStr , aArg14 );
7118  insert( lStr , aArg15 );
7119  insert( lStr , aArg16 );
7120  insert( lStr , aArg17 );
7121  insert( lStr , aArg18 );
7122  insert( lStr , aArg19 );
7123  insert( lStr , aArg20 );
7124  aExc.append( ( lStr.str() + "\n" ).c_str() );
7125  }
7126  log ( Error() , lStr.str() );
7127 }
7128 
7129 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 >
7130 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 )
7131 {
7132  std::stringstream lStr;
7133  {
7134  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7135  insert( lStr , aArg0 );
7136  insert( lStr , aArg1 );
7137  insert( lStr , aArg2 );
7138  insert( lStr , aArg3 );
7139  insert( lStr , aArg4 );
7140  insert( lStr , aArg5 );
7141  insert( lStr , aArg6 );
7142  insert( lStr , aArg7 );
7143  insert( lStr , aArg8 );
7144  insert( lStr , aArg9 );
7145  insert( lStr , aArg10 );
7146  insert( lStr , aArg11 );
7147  insert( lStr , aArg12 );
7148  insert( lStr , aArg13 );
7149  insert( lStr , aArg14 );
7150  insert( lStr , aArg15 );
7151  insert( lStr , aArg16 );
7152  insert( lStr , aArg17 );
7153  insert( lStr , aArg18 );
7154  insert( lStr , aArg19 );
7155  insert( lStr , aArg20 );
7156  insert( lStr , aArg21 );
7157  aExc.append( ( lStr.str() + "\n" ).c_str() );
7158  }
7159  log ( Error() , lStr.str() );
7160 }
7161 
7162 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 >
7163 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 )
7164 {
7165  std::stringstream lStr;
7166  {
7167  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7168  insert( lStr , aArg0 );
7169  insert( lStr , aArg1 );
7170  insert( lStr , aArg2 );
7171  insert( lStr , aArg3 );
7172  insert( lStr , aArg4 );
7173  insert( lStr , aArg5 );
7174  insert( lStr , aArg6 );
7175  insert( lStr , aArg7 );
7176  insert( lStr , aArg8 );
7177  insert( lStr , aArg9 );
7178  insert( lStr , aArg10 );
7179  insert( lStr , aArg11 );
7180  insert( lStr , aArg12 );
7181  insert( lStr , aArg13 );
7182  insert( lStr , aArg14 );
7183  insert( lStr , aArg15 );
7184  insert( lStr , aArg16 );
7185  insert( lStr , aArg17 );
7186  insert( lStr , aArg18 );
7187  insert( lStr , aArg19 );
7188  insert( lStr , aArg20 );
7189  insert( lStr , aArg21 );
7190  insert( lStr , aArg22 );
7191  aExc.append( ( lStr.str() + "\n" ).c_str() );
7192  }
7193  log ( Error() , lStr.str() );
7194 }
7195 
7196 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 >
7197 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 )
7198 {
7199  std::stringstream lStr;
7200  {
7201  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7202  insert( lStr , aArg0 );
7203  insert( lStr , aArg1 );
7204  insert( lStr , aArg2 );
7205  insert( lStr , aArg3 );
7206  insert( lStr , aArg4 );
7207  insert( lStr , aArg5 );
7208  insert( lStr , aArg6 );
7209  insert( lStr , aArg7 );
7210  insert( lStr , aArg8 );
7211  insert( lStr , aArg9 );
7212  insert( lStr , aArg10 );
7213  insert( lStr , aArg11 );
7214  insert( lStr , aArg12 );
7215  insert( lStr , aArg13 );
7216  insert( lStr , aArg14 );
7217  insert( lStr , aArg15 );
7218  insert( lStr , aArg16 );
7219  insert( lStr , aArg17 );
7220  insert( lStr , aArg18 );
7221  insert( lStr , aArg19 );
7222  insert( lStr , aArg20 );
7223  insert( lStr , aArg21 );
7224  insert( lStr , aArg22 );
7225  insert( lStr , aArg23 );
7226  aExc.append( ( lStr.str() + "\n" ).c_str() );
7227  }
7228  log ( Error() , lStr.str() );
7229 }
7230 
7231 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 >
7232 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 )
7233 {
7234  std::stringstream lStr;
7235  {
7236  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7237  insert( lStr , aArg0 );
7238  insert( lStr , aArg1 );
7239  insert( lStr , aArg2 );
7240  insert( lStr , aArg3 );
7241  insert( lStr , aArg4 );
7242  insert( lStr , aArg5 );
7243  insert( lStr , aArg6 );
7244  insert( lStr , aArg7 );
7245  insert( lStr , aArg8 );
7246  insert( lStr , aArg9 );
7247  insert( lStr , aArg10 );
7248  insert( lStr , aArg11 );
7249  insert( lStr , aArg12 );
7250  insert( lStr , aArg13 );
7251  insert( lStr , aArg14 );
7252  insert( lStr , aArg15 );
7253  insert( lStr , aArg16 );
7254  insert( lStr , aArg17 );
7255  insert( lStr , aArg18 );
7256  insert( lStr , aArg19 );
7257  insert( lStr , aArg20 );
7258  insert( lStr , aArg21 );
7259  insert( lStr , aArg22 );
7260  insert( lStr , aArg23 );
7261  insert( lStr , aArg24 );
7262  aExc.append( ( lStr.str() + "\n" ).c_str() );
7263  }
7264  log ( Error() , lStr.str() );
7265 }
7266 
7267 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 >
7268 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 )
7269 {
7270  std::stringstream lStr;
7271  {
7272  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7273  insert( lStr , aArg0 );
7274  insert( lStr , aArg1 );
7275  insert( lStr , aArg2 );
7276  insert( lStr , aArg3 );
7277  insert( lStr , aArg4 );
7278  insert( lStr , aArg5 );
7279  insert( lStr , aArg6 );
7280  insert( lStr , aArg7 );
7281  insert( lStr , aArg8 );
7282  insert( lStr , aArg9 );
7283  insert( lStr , aArg10 );
7284  insert( lStr , aArg11 );
7285  insert( lStr , aArg12 );
7286  insert( lStr , aArg13 );
7287  insert( lStr , aArg14 );
7288  insert( lStr , aArg15 );
7289  insert( lStr , aArg16 );
7290  insert( lStr , aArg17 );
7291  insert( lStr , aArg18 );
7292  insert( lStr , aArg19 );
7293  insert( lStr , aArg20 );
7294  insert( lStr , aArg21 );
7295  insert( lStr , aArg22 );
7296  insert( lStr , aArg23 );
7297  insert( lStr , aArg24 );
7298  insert( lStr , aArg25 );
7299  aExc.append( ( lStr.str() + "\n" ).c_str() );
7300  }
7301  log ( Error() , lStr.str() );
7302 }
7303 
7304 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 >
7305 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 )
7306 {
7307  std::stringstream lStr;
7308  {
7309  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7310  insert( lStr , aArg0 );
7311  insert( lStr , aArg1 );
7312  insert( lStr , aArg2 );
7313  insert( lStr , aArg3 );
7314  insert( lStr , aArg4 );
7315  insert( lStr , aArg5 );
7316  insert( lStr , aArg6 );
7317  insert( lStr , aArg7 );
7318  insert( lStr , aArg8 );
7319  insert( lStr , aArg9 );
7320  insert( lStr , aArg10 );
7321  insert( lStr , aArg11 );
7322  insert( lStr , aArg12 );
7323  insert( lStr , aArg13 );
7324  insert( lStr , aArg14 );
7325  insert( lStr , aArg15 );
7326  insert( lStr , aArg16 );
7327  insert( lStr , aArg17 );
7328  insert( lStr , aArg18 );
7329  insert( lStr , aArg19 );
7330  insert( lStr , aArg20 );
7331  insert( lStr , aArg21 );
7332  insert( lStr , aArg22 );
7333  insert( lStr , aArg23 );
7334  insert( lStr , aArg24 );
7335  insert( lStr , aArg25 );
7336  insert( lStr , aArg26 );
7337  aExc.append( ( lStr.str() + "\n" ).c_str() );
7338  }
7339  log ( Error() , lStr.str() );
7340 }
7341 
7342 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 >
7343 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 )
7344 {
7345  std::stringstream lStr;
7346  {
7347  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7348  insert( lStr , aArg0 );
7349  insert( lStr , aArg1 );
7350  insert( lStr , aArg2 );
7351  insert( lStr , aArg3 );
7352  insert( lStr , aArg4 );
7353  insert( lStr , aArg5 );
7354  insert( lStr , aArg6 );
7355  insert( lStr , aArg7 );
7356  insert( lStr , aArg8 );
7357  insert( lStr , aArg9 );
7358  insert( lStr , aArg10 );
7359  insert( lStr , aArg11 );
7360  insert( lStr , aArg12 );
7361  insert( lStr , aArg13 );
7362  insert( lStr , aArg14 );
7363  insert( lStr , aArg15 );
7364  insert( lStr , aArg16 );
7365  insert( lStr , aArg17 );
7366  insert( lStr , aArg18 );
7367  insert( lStr , aArg19 );
7368  insert( lStr , aArg20 );
7369  insert( lStr , aArg21 );
7370  insert( lStr , aArg22 );
7371  insert( lStr , aArg23 );
7372  insert( lStr , aArg24 );
7373  insert( lStr , aArg25 );
7374  insert( lStr , aArg26 );
7375  insert( lStr , aArg27 );
7376  aExc.append( ( lStr.str() + "\n" ).c_str() );
7377  }
7378  log ( Error() , lStr.str() );
7379 }
7380 
7381 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 >
7382 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 )
7383 {
7384  std::stringstream lStr;
7385  {
7386  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7387  insert( lStr , aArg0 );
7388  insert( lStr , aArg1 );
7389  insert( lStr , aArg2 );
7390  insert( lStr , aArg3 );
7391  insert( lStr , aArg4 );
7392  insert( lStr , aArg5 );
7393  insert( lStr , aArg6 );
7394  insert( lStr , aArg7 );
7395  insert( lStr , aArg8 );
7396  insert( lStr , aArg9 );
7397  insert( lStr , aArg10 );
7398  insert( lStr , aArg11 );
7399  insert( lStr , aArg12 );
7400  insert( lStr , aArg13 );
7401  insert( lStr , aArg14 );
7402  insert( lStr , aArg15 );
7403  insert( lStr , aArg16 );
7404  insert( lStr , aArg17 );
7405  insert( lStr , aArg18 );
7406  insert( lStr , aArg19 );
7407  insert( lStr , aArg20 );
7408  insert( lStr , aArg21 );
7409  insert( lStr , aArg22 );
7410  insert( lStr , aArg23 );
7411  insert( lStr , aArg24 );
7412  insert( lStr , aArg25 );
7413  insert( lStr , aArg26 );
7414  insert( lStr , aArg27 );
7415  insert( lStr , aArg28 );
7416  aExc.append( ( lStr.str() + "\n" ).c_str() );
7417  }
7418  log ( Error() , lStr.str() );
7419 }
7420 
7421 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 >
7422 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 )
7423 {
7424  std::stringstream lStr;
7425  {
7426  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7427  insert( lStr , aArg0 );
7428  insert( lStr , aArg1 );
7429  insert( lStr , aArg2 );
7430  insert( lStr , aArg3 );
7431  insert( lStr , aArg4 );
7432  insert( lStr , aArg5 );
7433  insert( lStr , aArg6 );
7434  insert( lStr , aArg7 );
7435  insert( lStr , aArg8 );
7436  insert( lStr , aArg9 );
7437  insert( lStr , aArg10 );
7438  insert( lStr , aArg11 );
7439  insert( lStr , aArg12 );
7440  insert( lStr , aArg13 );
7441  insert( lStr , aArg14 );
7442  insert( lStr , aArg15 );
7443  insert( lStr , aArg16 );
7444  insert( lStr , aArg17 );
7445  insert( lStr , aArg18 );
7446  insert( lStr , aArg19 );
7447  insert( lStr , aArg20 );
7448  insert( lStr , aArg21 );
7449  insert( lStr , aArg22 );
7450  insert( lStr , aArg23 );
7451  insert( lStr , aArg24 );
7452  insert( lStr , aArg25 );
7453  insert( lStr , aArg26 );
7454  insert( lStr , aArg27 );
7455  insert( lStr , aArg28 );
7456  insert( lStr , aArg29 );
7457  aExc.append( ( lStr.str() + "\n" ).c_str() );
7458  }
7459  log ( Error() , lStr.str() );
7460 }
7461 
7462 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 >
7463 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 )
7464 {
7465  std::stringstream lStr;
7466  {
7467  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7468  insert( lStr , aArg0 );
7469  insert( lStr , aArg1 );
7470  insert( lStr , aArg2 );
7471  insert( lStr , aArg3 );
7472  insert( lStr , aArg4 );
7473  insert( lStr , aArg5 );
7474  insert( lStr , aArg6 );
7475  insert( lStr , aArg7 );
7476  insert( lStr , aArg8 );
7477  insert( lStr , aArg9 );
7478  insert( lStr , aArg10 );
7479  insert( lStr , aArg11 );
7480  insert( lStr , aArg12 );
7481  insert( lStr , aArg13 );
7482  insert( lStr , aArg14 );
7483  insert( lStr , aArg15 );
7484  insert( lStr , aArg16 );
7485  insert( lStr , aArg17 );
7486  insert( lStr , aArg18 );
7487  insert( lStr , aArg19 );
7488  insert( lStr , aArg20 );
7489  insert( lStr , aArg21 );
7490  insert( lStr , aArg22 );
7491  insert( lStr , aArg23 );
7492  insert( lStr , aArg24 );
7493  insert( lStr , aArg25 );
7494  insert( lStr , aArg26 );
7495  insert( lStr , aArg27 );
7496  insert( lStr , aArg28 );
7497  insert( lStr , aArg29 );
7498  insert( lStr , aArg30 );
7499  aExc.append( ( lStr.str() + "\n" ).c_str() );
7500  }
7501  log ( Error() , lStr.str() );
7502 }
7503 
7504 template< typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 >
7505 void log ( exception::exception& aExc , const T0& aArg0 , const T1& aArg1 , const T2& aArg2 , const T3& aArg3 , const T4& aArg4 , const T5& aArg5 , const T6& aArg6 , const T7& aArg7 , const T8& aArg8 , const T9& aArg9 , const T10& aArg10 , const T11& aArg11 , const T12& aArg12 , const T13& aArg13 , const T14& aArg14 , const T15& aArg15 , const T16& aArg16 , const T17& aArg17 , const T18& aArg18 , const T19& aArg19 , const T20& aArg20 , const T21& aArg21 , const T22& aArg22 , const T23& aArg23 , const T24& aArg24 , const T25& aArg25 , const T26& aArg26 , const T27& aArg27 , const T28& aArg28 , const T29& aArg29 , const T30& aArg30 , const T31& aArg31 )
7506 {
7507  std::stringstream lStr;
7508  {
7509  boost::lock_guard<boost::mutex> lLock ( GetLoggingMutex() );
7510  insert( lStr , aArg0 );
7511  insert( lStr , aArg1 );
7512  insert( lStr , aArg2 );
7513  insert( lStr , aArg3 );
7514  insert( lStr , aArg4 );
7515  insert( lStr , aArg5 );
7516  insert( lStr , aArg6 );
7517  insert( lStr , aArg7 );
7518  insert( lStr , aArg8 );
7519  insert( lStr , aArg9 );
7520  insert( lStr , aArg10 );
7521  insert( lStr , aArg11 );
7522  insert( lStr , aArg12 );
7523  insert( lStr , aArg13 );
7524  insert( lStr , aArg14 );
7525  insert( lStr , aArg15 );
7526  insert( lStr , aArg16 );
7527  insert( lStr , aArg17 );
7528  insert( lStr , aArg18 );
7529  insert( lStr , aArg19 );
7530  insert( lStr , aArg20 );
7531  insert( lStr , aArg21 );
7532  insert( lStr , aArg22 );
7533  insert( lStr , aArg23 );
7534  insert( lStr , aArg24 );
7535  insert( lStr , aArg25 );
7536  insert( lStr , aArg26 );
7537  insert( lStr , aArg27 );
7538  insert( lStr , aArg28 );
7539  insert( lStr , aArg29 );
7540  insert( lStr , aArg30 );
7541  insert( lStr , aArg31 );
7542  aExc.append( ( lStr.str() + "\n" ).c_str() );
7543  }
7544  log ( Error() , lStr.str() );
7545 }
7546 
7547 // ======================================================================================================================================================
7548 // WARNING! This file is automatically generated! Do not modify it! Any changes will be overwritten!
7549 // ======================================================================================================================================================
7550 
7551 }
7552 
uhal::NoticeLevel
Helper struct representing the Notice log level to allow us to specialize functions according to thei...
Definition: LogLevels.hpp:130
uhal::exception::exception::append
void append(const char *aCStr)
Add additional information to the exception message.
Definition: exception.cpp:104
uhal::BaseLogLevel::tail
T & tail()
Definition: LogLevels.hpp:64
uhal::BaseLogLevel::stream
std::ostream & stream()
Definition: LogLevels.hpp:70
uhal::FatalLevel
Helper struct representing the Fatal log level to allow us to specialize functions according to their...
Definition: LogLevels.hpp:85
uhal::insert
void insert(std::ostream &aStr, const U &aU)
Definition: LogLevels.hpp:25
uhal::exception::exception
An abstract base exception class, including an interface to throw as the derived type (for passing ex...
Definition: exception.hpp:71
uhal
Definition: HttpResponseGrammar.hpp:49
log_inserters.quote.hpp
uhal::log
void log(FatalLevel &aFatal, const T0 &aArg0)
Function to add a log entry at Fatal level.
Definition: log.hxx:20
uhal::LoggingIncludes
const bool & LoggingIncludes(const FatalLevel &)
Function to check at runtime whether the level Fatal is to be included in the log output.
Definition: log.cpp:100
uhal::Error
ErrorLevel Error
Definition: LogLevels.cpp:61
uhal::WarningLevel
Helper struct representing the Warning log level to allow us to specialize functions according to the...
Definition: LogLevels.hpp:116
uhal::InfoLevel
Helper struct representing the Info log level to allow us to specialize functions according to their ...
Definition: LogLevels.hpp:145
uhal::BaseLogLevel::head
T & head()
Definition: LogLevels.hpp:58
uhal::GetLoggingMutex
boost::mutex & GetLoggingMutex()
Function to retrieve the mutex lock used by the logger.
Definition: log.cpp:79
uhal::DebugLevel
Helper struct representing the Debug log level to allow us to specialize functions according to their...
Definition: LogLevels.hpp:159
LogLevels.hpp
exception.hpp
uhal::ErrorLevel
Helper struct representing the Error log level to allow us to specialize functions according to their...
Definition: LogLevels.hpp:100