Skip to content

Commit b5a3752

Browse files
author
qiang_yu
committed
[RC] 增加logger机制
1 parent 2097543 commit b5a3752

File tree

20 files changed

+216
-24
lines changed

20 files changed

+216
-24
lines changed

CSJSBridge/CSJSBridgeActionHandlerManager.m

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

99
#import "CSJSBridgeActionHandlerManager.h"
1010
#import "CSJSHandler.h"
11+
#import "CSJSLog.h"
1112

1213
@interface CSJSBridgeActionHandlerManager()
1314

@@ -57,7 +58,7 @@ + (instancetype)shareManager
5758
id handler = [[handlerClass alloc] init];
5859
if(!handler)
5960
{
60-
NSLog(@"<< handlerClass not exist:%@ >>",handlerClassString);
61+
CSLog(@"handlerClass not exist:%@",handlerClassString);
6162
}
6263
else{
6364
if ([handler conformsToProtocol:@protocol(CSJSHandlerProtocol)]) {
@@ -66,11 +67,11 @@ + (instancetype)shareManager
6667
CSJSHandler *jsHandler = (CSJSHandler *)handler;
6768
jsHandler.handlerName = handlerName;
6869
}else{
69-
NSLog(@"<< handler:%@ not conform to protocol:%@ >>",handler, NSStringFromProtocol(@protocol(CSJSHandlerProtocol)));
70+
CSLog(@"handler:%@ not conform to protocol:%@",handler, NSStringFromProtocol(@protocol(CSJSHandlerProtocol)));
7071
}
7172
}
7273
}];
73-
NSLog(@"<< supportJsHandlerMap:%@ >>",_supportJSHandlersMap);
74+
CSLog(@"supportJsHandlerMap:%@",_supportJSHandlersMap);
7475
}
7576
return _supportJSHandlersMap;
7677
}
@@ -89,7 +90,7 @@ - (void)callHandler:(NSString *)handlerName
8990
{
9091
id <CSJSHandlerProtocol>handler = self.supportJSHandlersMap[handlerName];
9192
if (!handler) {
92-
NSLog(@"<< error,handler:%@ not register >>",handlerName);
93+
CSLog(@"error,handler:%@ not register",handlerName);
9394
}
9495
else
9596
{
@@ -99,7 +100,7 @@ - (void)callHandler:(NSString *)handlerName
99100
}
100101
else
101102
{
102-
NSLog(@"<< error,handler not respondsToSelector 'callAppActionWithMessage: '>>");
103+
NSLog(@"error,handler not respondsToSelector 'callAppActionWithMessage: '");
103104
}
104105
}
105106
}

CSJSBridge/CSJSBridgeManager.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// CSJSBridgeManager.h
3+
// CSWebViewJavascriptBridge_Example
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
#import "CSJSLoggerProtocol.h"
11+
12+
@interface CSJSBridgeManager : NSObject
13+
14+
+ (instancetype)shareManager;
15+
16+
+ (void)registerLogger:(id<CSJSLoggerProtocol>)logger;
17+
18+
+ (id<CSJSLoggerProtocol>)customLogger;
19+
20+
@end

CSJSBridge/CSJSBridgeManager.m

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//
2+
// CSJSBridgeManager.m
3+
// CSWebViewJavascriptBridge_Example
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#import "CSJSBridgeManager.h"
10+
11+
@interface CSJSBridgeManager()
12+
13+
@property (nonatomic,strong) id<CSJSLoggerProtocol>logger;
14+
15+
@end
16+
17+
@implementation CSJSBridgeManager
18+
19+
+ (instancetype)shareManager
20+
{
21+
static CSJSBridgeManager *manager = nil;
22+
static dispatch_once_t onceToken;
23+
dispatch_once(&onceToken, ^{
24+
manager = [[self alloc] init];
25+
});
26+
return manager;
27+
}
28+
29+
+ (void)registerLogger:(id<CSJSLoggerProtocol>)logger
30+
{
31+
NSParameterAssert(logger);
32+
[CSJSBridgeManager shareManager].logger = logger;
33+
}
34+
35+
+ (id<CSJSLoggerProtocol>)customLogger
36+
{
37+
return [[self shareManager] logger];
38+
}
39+
40+
@end

CSJSBridge/CSJSCustomLogger.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//
2+
// CSJSCustomLogger.h
3+
// CSWebViewJavascriptBridge_Example
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
#import "CSJSLoggerProtocol.h"
11+
12+
@interface CSJSCustomLogger : NSObject<CSJSLoggerProtocol>
13+
14+
@end

CSJSBridge/CSJSCustomLogger.m

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//
2+
// CSJSCustomLogger.m
3+
// CSWebViewJavascriptBridge_Example
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#import "CSJSCustomLogger.h"
10+
11+
@implementation CSJSCustomLogger
12+
13+
- (void)JSCustomLog:(NSString *)log
14+
{
15+
NSLog(@"--------JSCustomLog---------");
16+
}
17+
18+
@end

CSJSBridge/CSJSLog.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// CSJSLog.h
3+
// CSWebViewJavascriptBridge_Example
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
#define CSLog(args...) JSLog(@"CSJSLog", __FILE__,__LINE__,__PRETTY_FUNCTION__,args);
12+
13+
@interface CSJSLog : NSObject
14+
15+
void JSLog(NSString *prefix, const char *file, int lineNumber, const char *funcName, NSString *format,...);
16+
17+
@end

CSJSBridge/CSJSLog.m

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
//
2+
// CSJSLog.m
3+
// CSWebViewJavascriptBridge_Example
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#import "CSJSLog.h"
10+
#import "CSJSBridgeManager.h"
11+
12+
@implementation CSJSLog
13+
14+
void JSLog(NSString *prefix, const char *file, int lineNumber, const char *funcName, NSString *format,...) {
15+
16+
if ([CSJSBridgeManager customLogger] == nil){
17+
return;
18+
}
19+
20+
va_list ap;
21+
va_start (ap, format);
22+
format = [format stringByAppendingString:@"\n"];
23+
NSString *msg = [[NSString alloc] initWithFormat:[NSString stringWithFormat:@"%@",format] arguments:ap];
24+
va_end (ap);
25+
if (!msg.length){
26+
return;
27+
}
28+
NSLog(@"%@",msg);
29+
[[CSJSBridgeManager customLogger] JSCustomLog:msg];
30+
// write to file
31+
//fprintf(stderr,"%s%50s:%3d - %s",[prefix UTF8String], funcName, lineNumber, [msg UTF8String]);
32+
}
33+
34+
35+
@end

CSJSBridge/CSJSLoggerProtocol.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//
2+
// CSJSLoggerProtocol.h
3+
// CSWebViewJavascriptBridge
4+
//
5+
// Created by 余强 on 2018/9/3.
6+
// Copyright © 2018年 [email protected]. All rights reserved.
7+
//
8+
9+
#ifndef CSJSLoggerProtocol_h
10+
#define CSJSLoggerProtocol_h
11+
12+
@protocol CSJSLoggerProtocol <NSObject>
13+
14+
- (void) JSCustomLog:(nullable NSString *) log;
15+
16+
@end
17+
18+
19+
#endif /* CSJSLoggerProtocol_h */

CSJSBridge/CSJSMessage.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
@interface CSJSMessage: NSObject
1212

13-
1413
/**
1514
JS主动调native逻辑,分模块定义业务,common,xx,yy等,一个handler代表一个模块
1615
*/

CSJSBridge/CSUIWebViewJavascriptBridge.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#import <Foundation/Foundation.h>
1010
#import <JavaScriptCore/JavaScriptCore.h>
1111
#import "CSWebViewJavascriptBridge.h"
12+
#import "CSJSLog.h"
1213

1314
/**
1415
CSUIWebViewJavascriptBridge为CSWebViewJavascriptBridge的subClass,为UIWebView提供桥接能力

0 commit comments

Comments
 (0)