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

97 lines
2.5 KiB
Objective-C

//
// _NSLogHook.m
// Example_Swift
//
// Created by man 7/26/19.
// Copyright © 2020 man. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "_OCLogHelper.h"
#import "_fishhook.h"
//#import <React/RCTLog.h>
//#import "RCTLog.h"
@interface _NSLogHook : NSObject
@end
@implementation _NSLogHook
static void (*_original_nslog)(NSString *format, ...);
#pragma mark - hooks
void cocoadebug_nslog(NSString *format, ...)
{
if (![format isKindOfClass:[NSString class]]) {return;}
va_list vl;
va_start(vl, format);
NSString *str = [[NSString alloc] initWithFormat:format arguments:vl];
@try {
_original_nslog(str);
} @catch(NSException *exception) {
} @finally {
}
@try {
[_OCLogHelper.shared handleLogWithFile:@"" function:@"" line:999999999 message:str color:[UIColor whiteColor] type:CocoaDebugToolTypeNone];
} @catch(NSException *exception) {
} @finally {
}
va_end(vl);
}
#pragma mark - load
+ (void)load
{
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"enableLogMonitoring_CocoaDebug"]) {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
struct rebinding nslog_rebinding = {"NSLog",cocoadebug_nslog,(void*)&_original_nslog};
rebind_symbols((struct rebinding[1]){nslog_rebinding}, 1);
});
}
}
//#pragma mark - RN
//void _RCTLogJavaScriptInternal(RCTLogLevel level, NSString *message)
//{
// if ([[NSUserDefaults standardUserDefaults] boolForKey:@"enableRNMonitoring_CocoaDebug"]) {return;}
// if (![message isKindOfClass:[NSString class]]) {return;}
//// if (level != RCTLogLevelError && level != RCTLogLevelInfo) {return;}
//
// NSString *levelStr = @"";
//
// switch (level) {
//// case RCTLogLevelTrace:
//// levelStr = @"[RCTLogTrace]";
//// break;
// case RCTLogLevelInfo:
// levelStr = @"[RCTLogInfo]";
// break;
// case RCTLogLevelWarning:
// levelStr = @"[RCTLogWarn]";
// break;
// case RCTLogLevelError:
// levelStr = @"[RCTLogError]";
// break;
//// case RCTLogLevelFatal:
//// levelStr = @"[RCTLogFatal]";
// break;
// default:
// break;
// }
//
// [_OCLogHelper.shared handleLogWithFile:[NSString stringWithFormat:@"%@\n", levelStr] function:@"" line:-1 message:message color:[UIColor whiteColor] type:CocoaDebugToolTypeRN];
//}
@end