Skip to content

Commit 2bc9633

Browse files
committed
add log
1 parent be05322 commit 2bc9633

File tree

11 files changed

+122
-19
lines changed

11 files changed

+122
-19
lines changed

QiniuSDK/Collect/QNReportItem.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#import "QNReportItem.h"
1010
#import "QNAsyncRun.h"
11+
#import "QNLogUtil.h"
1112

1213
@interface QNReportItem()
1314

@@ -72,6 +73,7 @@ @implementation QNUploadInfoReporter(ReportItem)
7273
- (void)reportItem:(QNReportItem *)item token:(NSString *)token{
7374
QNAsyncRun(^{
7475
NSString *itemJsonString = [item toJson];
76+
QNLogInfo(@"up log:%@", itemJsonString);
7577
if (itemJsonString && ![itemJsonString isEqualToString:@"{}"]) {
7678
[self report:itemJsonString token:token];
7779
}

QiniuSDK/Http/Request/QNHttpRegionRequest.m

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//
88

99
#import "QNDefine.h"
10+
#import "QNLogUtil.h"
1011
#import "QNAsyncRun.h"
1112
#import "QNHttpRegionRequest.h"
1213
#import "QNConfiguration.h"
@@ -20,6 +21,7 @@ @interface QNHttpRegionRequest()
2021

2122
@property(nonatomic, strong)QNConfiguration *config;
2223
@property(nonatomic, strong)QNUploadOption *uploadOption;
24+
@property(nonatomic, strong)QNUploadRequestInfo *requestInfo;
2325
@property(nonatomic, strong)QNUploadRequestState *requestState;
2426

2527
@property(nonatomic, strong)QNUploadRegionRequestMetrics *requestMetrics;
@@ -43,6 +45,7 @@ - (instancetype)initWithConfig:(QNConfiguration *)config
4345
_config = config;
4446
_uploadOption = uploadOption;
4547
_region = region;
48+
_requestInfo = requestInfo;
4649
_requestState = requestState;
4750
_singleRequest = [[QNHttpSingleRequest alloc] initWithConfig:config
4851
uploadOption:uploadOption
@@ -153,6 +156,9 @@ - (void)performRequest:(id <QNUploadServer>)server
153156
[request setTimeoutInterval:self.config.timeoutInterval];
154157
request.HTTPBody = body;
155158

159+
QNLogInfo(@"key:%@ url:%@", self.requestInfo.key, request.URL);
160+
QNLogInfo(@"key:%@ headers:%@", self.requestInfo.key, headers);
161+
156162
kQNWeakSelf;
157163
[self.singleRequest request:request
158164
server:server

QiniuSDK/Http/Request/QNHttpSingleRequest.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#import "QNAsyncRun.h"
1111
#import "QNVersion.h"
1212
#import "QNUtils.h"
13+
#import "QNLogUtil.h"
1314
#import "QNHttpSingleRequest.h"
1415
#import "QNConfiguration.h"
1516
#import "QNUploadOption.h"
@@ -107,6 +108,8 @@ - (void)retryRequest:(NSURLRequest *)request
107108
return isCancelled;
108109
};
109110

111+
QNLogInfo(@"key:%@ retry:%d url:%@", self.requestInfo.key, self.currentRetryTime, request.URL);
112+
110113
[self.client request:request connectionProxy:self.config.proxy progress:^(long long totalBytesWritten, long long totalBytesExpectedToWrite) {
111114
kQNStrongSelf;
112115

@@ -142,6 +145,7 @@ - (void)retryRequest:(NSURLRequest *)request
142145
response:(NSHTTPURLResponse *)response
143146
body:responseData
144147
error:error];
148+
QNLogInfo(@"key:%@ response:%@", self.requestInfo.key, responseInfo);
145149
if (shouldRetry(responseInfo, responseDic)
146150
&& self.currentRetryTime < self.config.retryMax
147151
&& responseInfo.couldHostRetry) {

QiniuSDK/Http/ServerRegion/QNUploadDomainRegion.m

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#import "QNZoneInfo.h"
1313
#import "QNUploadServerFreezeManager.h"
1414
#import "QNDnsPrefetch.h"
15+
#import "QNLogUtil.h"
1516
#import "QNUtils.h"
1617

1718
@interface QNUploadIpGroup : NSObject
@@ -247,13 +248,16 @@ - (NSDictionary *)createDomainDictionary:(NSArray <NSString *> *)hosts{
247248
if (server == nil) {
248249
self.isAllFrozen = YES;
249250
}
251+
252+
QNLogInfo(@"get server host:%@ ip:%@", server.host, server.ip);
250253
return server;
251254
}
252255

253256
- (void)freezeServerIfNeed:(QNResponseInfo *)responseInfo freezeServer:(QNUploadServer *)freezeServer {
254257
if (freezeServer.serverId) {
255258
// 无法连接到Host || Host不可用, 局部冻结
256259
if (!responseInfo.canConnectToHost || responseInfo.isHostUnavailable) {
260+
QNLogInfo(@"partial freeze server host:%@ ip:%@", freezeServer.host, freezeServer.ip);
257261
[_domainDictionary[freezeServer.serverId] freeze:freezeServer.ip
258262
freezeManager:self.partialFreezeManager
259263
frozenTime:kQNGlobalConfiguration.partialHostFrozenTime];
@@ -264,6 +268,7 @@ - (void)freezeServerIfNeed:(QNResponseInfo *)responseInfo freezeServer:(QNUpload
264268

265269
// Host不可用,全局冻结
266270
if (responseInfo.isHostUnavailable) {
271+
QNLogInfo(@"global freeze server host:%@ ip:%@", freezeServer.host, freezeServer.ip);
267272
[_domainDictionary[freezeServer.serverId] freeze:freezeServer.ip
268273
freezeManager:kQNUploadServerFreezeManager
269274
frozenTime:kQNGlobalConfiguration.globalHostFrozenTime];

QiniuSDK/Storage/QNConcurrentResumeUpload.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
// Copyright © 2019 Qiniu. All rights reserved.
77
//
88

9+
#import "QNLogUtil.h"
910
#import "QNConcurrentResumeUpload.h"
1011

1112
@interface QNConcurrentResumeUpload()
@@ -24,6 +25,8 @@ - (int)prepareToUpload{
2425
}
2526

2627
- (void)uploadRestData:(dispatch_block_t)completeHandler {
28+
QNLogInfo(@"key:%@ 并发分片", self.key);
29+
2730
for (int i = 0; i < self.config.concurrentTaskCount; i++) {
2831
dispatch_group_enter(self.uploadGroup);
2932
dispatch_group_async(self.uploadGroup, self.uploadQueue, ^{

QiniuSDK/Storage/QNPartsUpload.m

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#import "QNDefine.h"
1010
#import "QNUtils.h"
11+
#import "QNLogUtil.h"
1112
#import "QNPartsUpload.h"
1213
#import "QNZoneInfo.h"
1314
#import "QNReportItem.h"
@@ -33,6 +34,7 @@ - (void)initData {
3334
[super initData];
3435
// 根据文件从本地恢复上传信息,如果没有则重新构建上传信息
3536
if (self.config.resumeUploadVersion == QNResumeUploadVersionV1) {
37+
QNLogInfo(@"key:%@ 分片V1", self.key);
3638
self.uploadPerformer = [[QNPartsUploadPerformerV1 alloc] initWithFile:self.file
3739
fileName:self.fileName
3840
key:self.key
@@ -41,6 +43,7 @@ - (void)initData {
4143
configuration:self.config
4244
recorderKey:self.recorderKey];
4345
} else {
46+
QNLogInfo(@"key:%@ 分片V2", self.key);
4447
self.uploadPerformer = [[QNPartsUploadPerformerV2 alloc] initWithFile:self.file
4548
fileName:self.fileName
4649
key:self.key
@@ -75,10 +78,12 @@ - (int)prepareToUpload{
7578
if (self.uploadPerformer.currentRegion && self.uploadPerformer.currentRegion.isValid) {
7679
// currentRegion有值,为断点续传,将region插入至regionList第一处
7780
[self insertRegionAtFirst:self.uploadPerformer.currentRegion];
81+
QNLogInfo(@"key:%@ 使用缓存region", self.key);
7882
} else {
7983
// currentRegion无值 切换region
8084
[self.uploadPerformer switchRegion:[self getCurrentRegion]];
8185
}
86+
QNLogInfo(@"key:%@ region:%@", self.key, self.uploadPerformer.currentRegion.zoneInfo.regionId);
8287

8388
if (self.file == nil) {
8489
code = kQNLocalIOError;
@@ -90,6 +95,7 @@ - (BOOL)switchRegion{
9095
BOOL isSuccess = [super switchRegion];
9196
if (isSuccess) {
9297
[self.uploadPerformer switchRegion:self.getCurrentRegion];
98+
QNLogInfo(@"key:%@ 切换region:%@", self.key , self.uploadPerformer.currentRegion.zoneInfo.regionId);
9399
}
94100
return isSuccess;
95101
}
@@ -106,8 +112,11 @@ - (void)startToUpload{
106112
self.uploadDataErrorResponseInfo = nil;
107113
self.uploadDataErrorResponse = nil;
108114

109-
kQNWeakSelf;
115+
116+
QNLogInfo(@"key:%@ serverInit", self.key);
117+
110118
// 1. 启动upload
119+
kQNWeakSelf;
111120
[self serverInit:^(QNResponseInfo * _Nullable responseInfo, NSDictionary * _Nullable response) {
112121
kQNStrongSelf;
113122

@@ -118,8 +127,10 @@ - (void)startToUpload{
118127
return;
119128
}
120129

121-
kQNWeakSelf;
130+
QNLogInfo(@"key:%@ uploadRestData", self.key);
131+
122132
// 2. 上传数据
133+
kQNWeakSelf;
123134
[self uploadRestData:^{
124135
kQNStrongSelf;
125136

@@ -130,8 +141,10 @@ - (void)startToUpload{
130141
return;
131142
}
132143

133-
kQNWeakSelf;
144+
QNLogInfo(@"key:%@ completeUpload", self.key);
145+
134146
// 3. 组装文件
147+
kQNWeakSelf;
135148
[self completeUpload:^(QNResponseInfo * _Nullable responseInfo, NSDictionary * _Nullable response) {
136149
kQNStrongSelf;
137150

@@ -152,7 +165,7 @@ - (void)startToUpload{
152165
}
153166

154167
- (void)uploadRestData:(dispatch_block_t)completeHandler {
155-
168+
QNLogInfo(@"key:%@ 串行分片", self.key);
156169
[self performUploadRestData:completeHandler];
157170
}
158171

QiniuSDK/Storage/QNPartsUploadPerformer.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
// Copyright © 2020 Qiniu. All rights reserved.
77
//
88

9+
#import "QNLogUtil.h"
910
#import "QNAsyncRun.h"
1011
#import "QNUpToken.h"
1112
#import "QNZoneInfo.h"
@@ -114,29 +115,35 @@ - (void)recordUploadInfo {
114115
[self.recorder set:key data:data];
115116
}
116117
}
118+
QNLogInfo(@"key:%@ recorderKey:%@ recordUploadInfo", self.key, self.recorderKey);
117119
}
118120

119121
- (void)removeUploadInfoRecord {
120122

121123
self.recoveredFrom = nil;
122124
[self.fileInfo clearUploadState];
123125
[self.recorder del:self.recorderKey];
126+
QNLogInfo(@"key:%@ recorderKey:%@ removeUploadInfoRecord", self.key, self.recorderKey);
124127
}
125128

126129
- (void)recoverUploadInfoFromRecord {
130+
QNLogInfo(@"key:%@ recorderKey:%@ recorder:%@ recoverUploadInfoFromRecord", self.key, self.recorderKey, self.recorder);
131+
127132
NSString *key = self.recorderKey;
128133
if (self.recorder == nil || key == nil || [key isEqualToString:@""]) {
129134
return;
130135
}
131136

132137
NSData *data = [self.recorder get:key];
133138
if (data == nil) {
139+
QNLogInfo(@"key:%@ recorderKey:%@ recoverUploadInfoFromRecord data:nil", self.key, self.recorderKey);
134140
return;
135141
}
136142

137143
NSError *error = nil;
138144
NSDictionary *info = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
139145
if (error != nil || ![info isKindOfClass:[NSDictionary class]]) {
146+
QNLogInfo(@"key:%@ recorderKey:%@ recoverUploadInfoFromRecord json error", self.key, self.recorderKey);
140147
[self.recorder del:self.key];
141148
return;
142149
}
@@ -146,6 +153,7 @@ - (void)recoverUploadInfoFromRecord {
146153

147154
if (zoneInfo && fileInfo && ![fileInfo isEmpty]
148155
&& fileInfo.size == self.file.size && fileInfo.modifyTime == self.file.modifyTime) {
156+
QNLogInfo(@"key:%@ recorderKey:%@ recoverUploadInfoFromRecord valid", self.key, self.recorderKey);
149157

150158
self.fileInfo = fileInfo;
151159

@@ -155,6 +163,8 @@ - (void)recoverUploadInfoFromRecord {
155163
self.targetRegion = region;
156164
self.recoveredFrom = @(fileInfo.progress * fileInfo.size);
157165
} else {
166+
QNLogInfo(@"key:%@ recorderKey:%@ recoverUploadInfoFromRecord invalid", self.key, self.recorderKey);
167+
158168
[self.recorder del:self.key];
159169
self.currentRegion = nil;
160170
self.targetRegion = nil;

QiniuSDK/Storage/QNPartsUploadPerformerV1.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
// Copyright © 2020 Qiniu. All rights reserved.
77
//
88

9+
#import "QNLogUtil.h"
910
#import "QNDefine.h"
1011
#import "QNRequestTransaction.h"
1112
#import "QNUploadFileInfoPartV1.h"
@@ -52,13 +53,17 @@ - (void)uploadNextData:(void(^)(BOOL stop,
5253
}
5354

5455
if (block == nil || chunk == nil) {
56+
QNLogInfo(@"key:%@ no chunk left", self.key);
5557
QNResponseInfo *responseInfo = [QNResponseInfo responseInfoWithSDKInteriorError:@"no chunk left"];
58+
5659
completeHandler(YES, responseInfo, nil, nil);
5760
return;
5861
}
5962

6063
NSData *chunkData = [self getDataWithChunk:chunk block:block];
6164
if (chunkData == nil) {
65+
QNLogInfo(@"key:%@ get chunk data error", self.key);
66+
6267
chunk.isUploading = NO;
6368
chunk.isCompleted = NO;
6469
QNResponseInfo *responseInfo = [QNResponseInfo responseInfoWithLocalIOError:@"get chunk data error"];
@@ -93,8 +98,10 @@ - (void)uploadNextData:(void(^)(BOOL stop,
9398
};
9499

95100
if (chunk.isFirstData) {
101+
QNLogInfo(@"key:%@ makeBlock", self.key);
96102
[self makeBlock:block firstChunk:chunk chunkData:chunkData progress:progress completeHandler:completeHandlerP];
97103
} else {
104+
QNLogInfo(@"key:%@ uploadChunk", self.key);
98105
[self uploadChunk:block chunk:chunk chunkData:chunkData progress:progress completeHandler:completeHandlerP];
99106
}
100107
}

QiniuSDK/Storage/QNPartsUploadPerformerV2.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
// Copyright © 2020 Qiniu. All rights reserved.
77
//
88

9+
#import "QNLogUtil.h"
910
#import "QNDefine.h"
1011
#import "QNRequestTransaction.h"
1112
#import "QNUploadFileInfoPartV2.h"
@@ -28,8 +29,10 @@ - (QNUploadFileInfo *)getDefaultUploadFileInfo {
2829
- (void)serverInit:(void(^)(QNResponseInfo * _Nullable responseInfo,
2930
QNUploadRegionRequestMetrics * _Nullable metrics,
3031
NSDictionary * _Nullable response))completeHandler {
32+
3133
QNUploadFileInfoPartV2 *fileInfo = (QNUploadFileInfoPartV2 *)self.fileInfo;
3234
if (fileInfo && [fileInfo isValid]) {
35+
QNLogInfo(@"key:%@ serverInit success", self.key);
3336
QNResponseInfo *responseInfo = [QNResponseInfo successResponse];
3437
completeHandler(responseInfo, nil, nil);
3538
return;
@@ -69,6 +72,8 @@ - (void)uploadNextData:(void(^)(BOOL stop,
6972
}
7073
// 上传完毕
7174
if (data == nil) {
75+
QNLogInfo(@"key:%@ no data left", self.key);
76+
7277
QNResponseInfo *responseInfo = [QNResponseInfo responseInfoWithSDKInteriorError:@"no data left"];
7378
completeHandler(YES, responseInfo, nil, nil);
7479
return;
@@ -77,6 +82,8 @@ - (void)uploadNextData:(void(^)(BOOL stop,
7782
// 本地读异常
7883
NSData *uploadData = [self getUploadData:data];
7984
if (uploadData == nil) {
85+
QNLogInfo(@"key:%@ get data error", self.key);
86+
8087
data.isUploading = NO;
8188
data.isCompleted = NO;
8289
QNResponseInfo *responseInfo = [QNResponseInfo responseInfoWithLocalIOError:@"get data error"];

QiniuSDK/Utils/QNLogUtil.h

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,30 @@ typedef NS_ENUM(NSInteger, QNLogLevel){
2323

2424
+ (void)setLogLevel:(QNLogLevel)level;
2525

26+
+ (void)enableLogDate:(BOOL)enable;
27+
+ (void)enableLogFile:(BOOL)enable;
28+
+ (void)enableLogFunction:(BOOL)enable;
29+
2630
+ (void)log:(QNLogLevel)level
27-
file:(NSString *)file
28-
function:(NSString *)function
31+
file:(const char *)file
32+
function:(const char *)function
2933
line:(NSUInteger)line
30-
format:(NSString *)format, ...;
34+
format:(NSString * _Nullable)format, ...;
3135

3236

3337
@end
3438

35-
#define QNLog(level, format) [QNLogUtil log:level file:__File__ function:__func__ line:__LINE__ format:format]
36-
37-
#define QNLogError(format) QNLog(QNLogLevelError, format)
38-
#define QNLogWarn(format) QNLog(QNLogLevelWarn, format)
39-
#define QNLogInfo(format) QNLog(QNLogLevelInfo, format)
40-
#define QNLogDebug(format) QNLog(QNLogLevelDebug, format)
41-
#define QNLogVerbose(format) QNLog(QNLogLevelVerbose, format)
39+
#define QNLog(level, fmt, ...) \
40+
[QNLogUtil log:level \
41+
file:__FILE__ \
42+
function:__FUNCTION__ \
43+
line:__LINE__ \
44+
format:(fmt), ##__VA_ARGS__]
45+
46+
#define QNLogError(format, ...) QNLog(QNLogLevelError, format, ##__VA_ARGS__)
47+
#define QNLogWarn(format, ...) QNLog(QNLogLevelWarn, format, ##__VA_ARGS__)
48+
#define QNLogInfo(format, ...) QNLog(QNLogLevelInfo, format, ##__VA_ARGS__)
49+
#define QNLogDebug(format, ...) QNLog(QNLogLevelDebug, format, ##__VA_ARGS__)
50+
#define QNLogVerbose(format, ...) QNLog(QNLogLevelVerbose, format, ##__VA_ARGS__)
4251

4352
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)