92 lines
2.6 KiB
Objective-C
92 lines
2.6 KiB
Objective-C
//
|
|
// Example
|
|
// man
|
|
//
|
|
// Created by man 11/11/2018.
|
|
// Copyright © 2020 man. All rights reserved.
|
|
//
|
|
|
|
#import "_OCLogHelper.h"
|
|
#import "_OCLogStoreManager.h"
|
|
|
|
@implementation _OCLogHelper
|
|
|
|
+ (instancetype)shared
|
|
{
|
|
static id sharedInstance = nil;
|
|
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
sharedInstance = [[self alloc] init];
|
|
});
|
|
|
|
return sharedInstance;
|
|
}
|
|
|
|
//default value for @property
|
|
//- (id)init {
|
|
// if (self = [super init]) {
|
|
// self.enable = YES;
|
|
// }
|
|
// return self;
|
|
//}
|
|
|
|
- (NSString *)parseFileInfo:(NSString *)file function:(NSString *)function line:(NSInteger)line
|
|
{
|
|
if (![file isKindOfClass:[NSString class]] || ![function isKindOfClass:[NSString class]]) {
|
|
return @"\n";
|
|
}
|
|
|
|
if ([file isEqualToString:@"XXX"] && [function isEqualToString:@"XXX"] && line == 1) {
|
|
return @"XXX|XXX|1";
|
|
}
|
|
|
|
if (line == 0) { //web
|
|
NSString *fileName = [[file componentsSeparatedByString:@"/"] lastObject] ?: @"";
|
|
return [NSString stringWithFormat:@"%@ %@\n", fileName, function];
|
|
}
|
|
|
|
if (line == 999999999) { //nslog
|
|
NSString *fileName = [[file componentsSeparatedByString:@"/"] lastObject] ?: @"";
|
|
return [NSString stringWithFormat:@"%@ %@\n", fileName, function];
|
|
}
|
|
|
|
if (line == -1) { //RN
|
|
return file;
|
|
}
|
|
|
|
NSString *fileName = [[file componentsSeparatedByString:@"/"] lastObject] ?: @"";
|
|
return [NSString stringWithFormat:@"%@[%ld]%@\n", fileName, (long)line, function];
|
|
}
|
|
|
|
- (void)handleLogWithFile:(NSString *)file function:(NSString *)function line:(NSInteger)line message:(NSString *)message color:(UIColor *)color type:(CocoaDebugToolType)type
|
|
{
|
|
// if (!self.enable && type != CocoaDebugToolTypeRN) {return;}
|
|
if (!file || !function || !message || !color) {return;}
|
|
|
|
//1.
|
|
NSString *fileInfo = [self parseFileInfo:file function:function line:line];
|
|
|
|
//2.
|
|
_OCLogModel *newLog = [[_OCLogModel alloc] initWithContent:message color:color fileInfo:fileInfo isTag:NO type:type];
|
|
|
|
// if (line == 0 && ![fileInfo isEqualToString:@"XXX|XXX|1"]) {
|
|
// newLog.logType = CocoaDebugLogType...
|
|
// }
|
|
|
|
if (type == CocoaDebugToolTypeRN) {
|
|
newLog.logType = CocoaDebugLogTypeRN;
|
|
}
|
|
|
|
if ([file isEqualToString:@"[WKWebView]"]) {
|
|
newLog.logType = CocoaDebugLogTypeWeb;
|
|
}
|
|
|
|
[[_OCLogStoreManager shared] addLog:newLog];
|
|
|
|
//3.
|
|
[[NSNotificationCenter defaultCenter] postNotificationName:@"refreshLogs_CocoaDebug" object:nil userInfo:nil];
|
|
}
|
|
|
|
@end
|