mirror of
https://github.com/swisspol/GCDWebServer.git
synced 2024-10-07 08:32:16 +08:00
Optimized logging
This commit is contained in:
parent
a3996f3fbf
commit
1e1fd24b5d
@ -63,6 +63,14 @@
|
||||
}
|
||||
@end
|
||||
|
||||
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
||||
#ifdef NDEBUG
|
||||
long GCDLogMinLevel = 2; // INFO level and higher
|
||||
#else
|
||||
long GCDLogMinLevel = 0; // DEBUG level and higher
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static NSDateFormatter* _dateFormatterRFC822 = nil;
|
||||
static dispatch_queue_t _dateFormatterQueue = NULL;
|
||||
#if !TARGET_OS_IPHONE
|
||||
@ -73,19 +81,12 @@ static BOOL _run;
|
||||
|
||||
void GCDLogMessage(long level, NSString* format, ...) {
|
||||
static const char* levelNames[] = {"DEBUG", "VERBOSE", "INFO", "WARNING", "ERROR", "EXCEPTION"};
|
||||
static long minLevel = -1;
|
||||
if (minLevel < 0) {
|
||||
const char* logLevel = getenv("logLevel");
|
||||
minLevel = logLevel ? atoi(logLevel) : 0;
|
||||
}
|
||||
if (level >= minLevel) {
|
||||
va_list arguments;
|
||||
va_start(arguments, format);
|
||||
NSString* message = [[NSString alloc] initWithFormat:format arguments:arguments];
|
||||
va_end(arguments);
|
||||
fprintf(stderr, "[%s] %s\n", levelNames[level], [message UTF8String]);
|
||||
ARC_RELEASE(message);
|
||||
}
|
||||
va_list arguments;
|
||||
va_start(arguments, format);
|
||||
NSString* message = [[NSString alloc] initWithFormat:format arguments:arguments];
|
||||
va_end(arguments);
|
||||
fprintf(stderr, "[%s] %s\n", levelNames[level], [message UTF8String]);
|
||||
ARC_RELEASE(message);
|
||||
}
|
||||
|
||||
#endif
|
||||
@ -305,6 +306,17 @@ static void _SignalHandler(int signal) {
|
||||
|
||||
@synthesize handlers=_handlers, port=_port;
|
||||
|
||||
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
||||
|
||||
+ (void)load {
|
||||
const char* logLevel = getenv("logLevel");
|
||||
if (logLevel) {
|
||||
GCDLogMinLevel = atoi(logLevel);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+ (void)initialize {
|
||||
if (_dateFormatterRFC822 == nil) {
|
||||
DCHECK([NSThread isMainThread]); // NSDateFormatter should be initialized on main thread
|
||||
|
@ -71,13 +71,14 @@
|
||||
|
||||
#else
|
||||
|
||||
extern long GCDLogMinLevel;
|
||||
extern void GCDLogMessage(long level, NSString* format, ...) NS_FORMAT_FUNCTION(2, 3);
|
||||
|
||||
#define LOG_VERBOSE(...) GCDLogMessage(1, __VA_ARGS__)
|
||||
#define LOG_INFO(...) GCDLogMessage(2, __VA_ARGS__)
|
||||
#define LOG_WARNING(...) GCDLogMessage(3, __VA_ARGS__)
|
||||
#define LOG_ERROR(...) GCDLogMessage(4, __VA_ARGS__)
|
||||
#define LOG_EXCEPTION(__EXCEPTION__) GCDLogMessage(5, @"%@", __EXCEPTION__)
|
||||
#define LOG_VERBOSE(...) do { if (GCDLogMinLevel <= 1) GCDLogMessage(1, __VA_ARGS__); } while (0)
|
||||
#define LOG_INFO(...) do { if (GCDLogMinLevel <= 2) GCDLogMessage(2, __VA_ARGS__); } while (0)
|
||||
#define LOG_WARNING(...) do { if (GCDLogMinLevel <= 3) GCDLogMessage(3, __VA_ARGS__); } while (0)
|
||||
#define LOG_ERROR(...) do { if (GCDLogMinLevel <= 4) GCDLogMessage(4, __VA_ARGS__); } while (0)
|
||||
#define LOG_EXCEPTION(__EXCEPTION__) do { if (GCDLogMinLevel <= 5) GCDLogMessage(5, @"%@", __EXCEPTION__); } while (0)
|
||||
|
||||
#ifdef NDEBUG
|
||||
|
||||
@ -94,7 +95,7 @@ extern void GCDLogMessage(long level, NSString* format, ...) NS_FORMAT_FUNCTION(
|
||||
} \
|
||||
} while (0)
|
||||
#define DNOT_REACHED() abort()
|
||||
#define LOG_DEBUG(...) GCDLogMessage(0, __VA_ARGS__)
|
||||
#define LOG_DEBUG(...) do { if (GCDLogMinLevel <= 0) GCDLogMessage(0, __VA_ARGS__); } while (0)
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user