Files
OrderScheduling/Pods/CocoaDebug/Sources/Logs/_OCLogHelper.m
DDIsFriend 63ca919ed5 update
2023-08-23 09:24:40 +08:00

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