mirror of
https://github.com/swisspol/GCDWebServer.git
synced 2026-05-13 00:02:02 +08:00
More cleaning of logging system
This commit is contained in:
@@ -30,6 +30,15 @@
|
|||||||
#import "GCDWebServerRequest.h"
|
#import "GCDWebServerRequest.h"
|
||||||
#import "GCDWebServerResponse.h"
|
#import "GCDWebServerResponse.h"
|
||||||
|
|
||||||
|
typedef NS_ENUM(int, GCDWebServerLogLevel) {
|
||||||
|
kGCDWebServerLogLevel_Debug = 0, // Only available if "NDEBUG" is not defined when building
|
||||||
|
kGCDWebServerLogLevel_Verbose,
|
||||||
|
kGCDWebServerLogLevel_Info,
|
||||||
|
kGCDWebServerLogLevel_Warning,
|
||||||
|
kGCDWebServerLogLevel_Error,
|
||||||
|
kGCDWebServerLogLevel_Exception,
|
||||||
|
};
|
||||||
|
|
||||||
typedef GCDWebServerRequest* (^GCDWebServerMatchBlock)(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery);
|
typedef GCDWebServerRequest* (^GCDWebServerMatchBlock)(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery);
|
||||||
typedef GCDWebServerResponse* (^GCDWebServerProcessBlock)(GCDWebServerRequest* request);
|
typedef GCDWebServerResponse* (^GCDWebServerProcessBlock)(GCDWebServerRequest* request);
|
||||||
|
|
||||||
@@ -87,6 +96,9 @@ NSString* GCDWebServerGetPrimaryIPv4Address(); // Returns IPv4 address of prima
|
|||||||
@end
|
@end
|
||||||
|
|
||||||
@interface GCDWebServer (Logging)
|
@interface GCDWebServer (Logging)
|
||||||
|
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
||||||
|
+ (void)setLogLevel:(GCDWebServerLogLevel)level; // Default level is DEBUG or INFO if "NDEBUG" is defined when building (it can also be set at runtime with the "logLevel" environment variable)
|
||||||
|
#endif
|
||||||
- (void)logVerbose:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
- (void)logVerbose:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
||||||
- (void)logInfo:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
- (void)logInfo:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
||||||
- (void)logWarning:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
- (void)logWarning:(NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
|
||||||
|
|||||||
@@ -65,9 +65,9 @@
|
|||||||
|
|
||||||
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
long GCDLogMinLevel = 2; // INFO level and higher
|
GCDWebServerLogLevel GCDLogLevel = kGCDWebServerLogLevel_Info;
|
||||||
#else
|
#else
|
||||||
long GCDLogMinLevel = 0; // DEBUG level and higher
|
GCDWebServerLogLevel GCDLogLevel = kGCDWebServerLogLevel_Debug;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ static BOOL _run;
|
|||||||
|
|
||||||
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
||||||
|
|
||||||
void GCDLogMessage(long level, NSString* format, ...) {
|
void GCDLogMessage(GCDWebServerLogLevel level, NSString* format, ...) {
|
||||||
static const char* levelNames[] = {"DEBUG", "VERBOSE", "INFO", "WARNING", "ERROR", "EXCEPTION"};
|
static const char* levelNames[] = {"DEBUG", "VERBOSE", "INFO", "WARNING", "ERROR", "EXCEPTION"};
|
||||||
va_list arguments;
|
va_list arguments;
|
||||||
va_start(arguments, format);
|
va_start(arguments, format);
|
||||||
@@ -311,7 +311,7 @@ static void _SignalHandler(int signal) {
|
|||||||
+ (void)load {
|
+ (void)load {
|
||||||
const char* logLevel = getenv("logLevel");
|
const char* logLevel = getenv("logLevel");
|
||||||
if (logLevel) {
|
if (logLevel) {
|
||||||
GCDLogMinLevel = atoi(logLevel);
|
GCDLogLevel = atoi(logLevel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -376,7 +376,7 @@ static void _NetServiceClientCallBack(CFNetServiceRef service, CFStreamError* er
|
|||||||
LOG_ERROR(@"Bonjour error %i (domain %i)", (int)error->error, (int)error->domain);
|
LOG_ERROR(@"Bonjour error %i (domain %i)", (int)error->error, (int)error->domain);
|
||||||
} else {
|
} else {
|
||||||
GCDWebServer* server = (ARC_BRIDGE GCDWebServer*)info;
|
GCDWebServer* server = (ARC_BRIDGE GCDWebServer*)info;
|
||||||
LOG_VERBOSE(@"%@ now reachable at %@", [server class], server.bonjourServerURL);
|
LOG_INFO(@"%@ now reachable at %@", [server class], server.bonjourServerURL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -472,7 +472,7 @@ static void _NetServiceClientCallBack(CFNetServiceRef service, CFStreamError* er
|
|||||||
}
|
}
|
||||||
|
|
||||||
dispatch_resume(_source);
|
dispatch_resume(_source);
|
||||||
LOG_VERBOSE(@"%@ started on port %i and reachable at %@", [self class], (int)_port, self.serverURL);
|
LOG_INFO(@"%@ started on port %i and reachable at %@", [self class], (int)_port, self.serverURL);
|
||||||
} else {
|
} else {
|
||||||
LOG_ERROR(@"Failed listening on socket (%i): %s", errno, strerror(errno));
|
LOG_ERROR(@"Failed listening on socket (%i): %s", errno, strerror(errno));
|
||||||
close(listeningSocket);
|
close(listeningSocket);
|
||||||
@@ -505,7 +505,7 @@ static void _NetServiceClientCallBack(CFNetServiceRef service, CFStreamError* er
|
|||||||
ARC_DISPATCH_RELEASE(_source);
|
ARC_DISPATCH_RELEASE(_source);
|
||||||
_source = NULL;
|
_source = NULL;
|
||||||
|
|
||||||
LOG_VERBOSE(@"%@ stopped", [self class]);
|
LOG_INFO(@"%@ stopped", [self class]);
|
||||||
}
|
}
|
||||||
_port = 0;
|
_port = 0;
|
||||||
}
|
}
|
||||||
@@ -745,6 +745,14 @@ static void _NetServiceClientCallBack(CFNetServiceRef service, CFStreamError* er
|
|||||||
|
|
||||||
@implementation GCDWebServer (Logging)
|
@implementation GCDWebServer (Logging)
|
||||||
|
|
||||||
|
#ifndef __GCDWEBSERVER_LOGGING_HEADER__
|
||||||
|
|
||||||
|
+ (void)setLogLevel:(GCDWebServerLogLevel)level {
|
||||||
|
GCDLogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
- (void)logVerbose:(NSString*)format, ... {
|
- (void)logVerbose:(NSString*)format, ... {
|
||||||
va_list arguments;
|
va_list arguments;
|
||||||
va_start(arguments, format);
|
va_start(arguments, format);
|
||||||
|
|||||||
@@ -71,14 +71,14 @@
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
extern long GCDLogMinLevel;
|
extern GCDWebServerLogLevel GCDLogLevel;
|
||||||
extern void GCDLogMessage(long level, NSString* format, ...) NS_FORMAT_FUNCTION(2, 3);
|
extern void GCDLogMessage(GCDWebServerLogLevel level, NSString* format, ...) NS_FORMAT_FUNCTION(2, 3);
|
||||||
|
|
||||||
#define LOG_VERBOSE(...) do { if (GCDLogMinLevel <= 1) GCDLogMessage(1, __VA_ARGS__); } while (0)
|
#define LOG_VERBOSE(...) do { if (GCDLogLevel <= kGCDWebServerLogLevel_Verbose) GCDLogMessage(kGCDWebServerLogLevel_Verbose, __VA_ARGS__); } while (0)
|
||||||
#define LOG_INFO(...) do { if (GCDLogMinLevel <= 2) GCDLogMessage(2, __VA_ARGS__); } while (0)
|
#define LOG_INFO(...) do { if (GCDLogLevel <= kGCDWebServerLogLevel_Info) GCDLogMessage(kGCDWebServerLogLevel_Info, __VA_ARGS__); } while (0)
|
||||||
#define LOG_WARNING(...) do { if (GCDLogMinLevel <= 3) GCDLogMessage(3, __VA_ARGS__); } while (0)
|
#define LOG_WARNING(...) do { if (GCDLogLevel <= kGCDWebServerLogLevel_Warning) GCDLogMessage(kGCDWebServerLogLevel_Warning, __VA_ARGS__); } while (0)
|
||||||
#define LOG_ERROR(...) do { if (GCDLogMinLevel <= 4) GCDLogMessage(4, __VA_ARGS__); } while (0)
|
#define LOG_ERROR(...) do { if (GCDLogLevel <= kGCDWebServerLogLevel_Error) GCDLogMessage(kGCDWebServerLogLevel_Error, __VA_ARGS__); } while (0)
|
||||||
#define LOG_EXCEPTION(__EXCEPTION__) do { if (GCDLogMinLevel <= 5) GCDLogMessage(5, @"%@", __EXCEPTION__); } while (0)
|
#define LOG_EXCEPTION(__EXCEPTION__) do { if (GCDLogLevel <= kGCDWebServerLogLevel_Exception) GCDLogMessage(kGCDWebServerLogLevel_Exception, @"%@", __EXCEPTION__); } while (0)
|
||||||
|
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ extern void GCDLogMessage(long level, NSString* format, ...) NS_FORMAT_FUNCTION(
|
|||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define DNOT_REACHED() abort()
|
#define DNOT_REACHED() abort()
|
||||||
#define LOG_DEBUG(...) do { if (GCDLogMinLevel <= 0) GCDLogMessage(0, __VA_ARGS__); } while (0)
|
#define LOG_DEBUG(...) do { if (GCDLogLevel <= kGCDWebServerLogLevel_Debug) GCDLogMessage(kGCDWebServerLogLevel_Debug, __VA_ARGS__); } while (0)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user