feat: sync httpdns sdk/platform updates without large binaries
This commit is contained in:
30
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLog.h
Normal file
30
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLog.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface HttpdnsLog : NSObject
|
||||
|
||||
+ (void)enableLog;
|
||||
|
||||
+ (void)disableLog;
|
||||
|
||||
+ (BOOL)isEnabled;
|
||||
|
||||
@end
|
||||
73
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLog.m
Normal file
73
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLog.m
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
|
||||
#import "HttpdnsLog_Internal.h"
|
||||
|
||||
static BOOL HttpdnsLogIsEnabled = NO;
|
||||
|
||||
static id<HttpdnsLoggerProtocol> sLogHandler;
|
||||
|
||||
@implementation HttpdnsLog
|
||||
|
||||
+ (void)enableLog {
|
||||
HttpdnsLogIsEnabled = YES;
|
||||
}
|
||||
|
||||
+ (void)disableLog {
|
||||
HttpdnsLogIsEnabled = NO;
|
||||
}
|
||||
|
||||
+ (BOOL)isEnabled {
|
||||
return HttpdnsLogIsEnabled;
|
||||
}
|
||||
|
||||
+ (void)setLogHandler:(id<HttpdnsLoggerProtocol>)handler {
|
||||
SEL sel = NSSelectorFromString(@"log:");
|
||||
if (handler && [handler respondsToSelector:sel]) {
|
||||
sLogHandler = handler;
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)unsetLogHandler {
|
||||
sLogHandler = nil;
|
||||
}
|
||||
|
||||
+ (BOOL)validLogHandler {
|
||||
return (sLogHandler != nil);
|
||||
}
|
||||
|
||||
+ (void)outputToLogHandler:(NSString *)logStr {
|
||||
if (sLogHandler) {
|
||||
[sLogHandler log:logStr];
|
||||
}
|
||||
}
|
||||
|
||||
+ (NSString *)getFormattedDateTimeStr {
|
||||
static NSDateFormatter *dateFormatter;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
dateFormatter = [[NSDateFormatter alloc] init];
|
||||
});
|
||||
|
||||
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
|
||||
return [dateFormatter stringFromDate:[NSDate date]];
|
||||
}
|
||||
|
||||
@end
|
||||
45
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLog_Internal.h
Normal file
45
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLog_Internal.h
Normal file
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// HttpdnsLog_Internal.h
|
||||
// TrustHttpDNS
|
||||
//
|
||||
// Created by junmo on 2018/12/19.
|
||||
// Copyright © 2018<31><38>?trustapp.com. All rights reserved.
|
||||
//
|
||||
|
||||
#import "HttpdnsLog.h"
|
||||
#import "HttpdnsLoggerProtocol.h"
|
||||
#import <pthread/pthread.h>
|
||||
|
||||
// logHandler输出日志,不受日志开关影<E585B3><E5BDB1>?
|
||||
#define HttpdnsLogDebug(frmt, ...) \
|
||||
if ([HttpdnsLog validLogHandler]) { \
|
||||
@try { \
|
||||
uint64_t tid = 0; \
|
||||
pthread_threadid_np(NULL, &tid); \
|
||||
NSString *logFormat = [NSString stringWithFormat:@"%s", frmt]; \
|
||||
NSString *logStr = [NSString stringWithFormat:@"[%llu] %@", tid, [NSString stringWithFormat:logFormat, ##__VA_ARGS__, nil]]; \
|
||||
[HttpdnsLog outputToLogHandler:logStr]; \
|
||||
} @catch (NSException *exception){ \
|
||||
} \
|
||||
} \
|
||||
if ([HttpdnsLog isEnabled]) { \
|
||||
@try { \
|
||||
uint64_t tid = 0; \
|
||||
pthread_threadid_np(NULL, &tid); \
|
||||
NSLog((@"%@ HTTPDNSSDKLOG [%llu] - " frmt), [HttpdnsLog getFormattedDateTimeStr], tid, ##__VA_ARGS__); \
|
||||
} @catch (NSException *exception){ \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
@interface HttpdnsLog ()
|
||||
|
||||
+ (void)setLogHandler:(id<HttpdnsLoggerProtocol>)handler;
|
||||
+ (void)unsetLogHandler;
|
||||
+ (BOOL)validLogHandler;
|
||||
+ (void)outputToLogHandler:(NSString *)logStr;
|
||||
|
||||
+ (NSString *)getFormattedDateTimeStr;
|
||||
|
||||
|
||||
@end
|
||||
20
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLoggerProtocol.h
Normal file
20
HttpDNSSDK/sdk/ios/NewHttpDNS/Log/HttpdnsLoggerProtocol.h
Normal file
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// HttpdnsLoggerProtocol.h
|
||||
// TrustHttpDNS
|
||||
//
|
||||
// Created by junmo on 2018/12/19.
|
||||
// Copyright © 2018<31><38>?trustapp.com. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef HttpdnsLoggerProtocol_h
|
||||
#define HttpdnsLoggerProtocol_h
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@protocol HttpdnsLoggerProtocol <NSObject>
|
||||
|
||||
- (void)log:(NSString *)logStr;
|
||||
|
||||
@end
|
||||
|
||||
#endif /* HttpdnsLoggerProtocol_h */
|
||||
Reference in New Issue
Block a user