111 lines
3.8 KiB
Objective-C
111 lines
3.8 KiB
Objective-C
//
|
|
// Example
|
|
// man
|
|
//
|
|
// Created by man 11/11/2018.
|
|
// Copyright © 2020 man. All rights reserved.
|
|
//
|
|
|
|
#import "_OCLogModel.h"
|
|
#import "_OCLoggerFormat.h"
|
|
#import "_NetworkHelper.h"
|
|
|
|
@implementation _OCLogModel
|
|
|
|
- (instancetype)initWithContent:(NSString *)content color:(UIColor *)color fileInfo:(NSString *)fileInfo isTag:(BOOL)isTag type:(CocoaDebugToolType)type
|
|
{
|
|
if (self = [super init]) {
|
|
|
|
if ([fileInfo isEqualToString:@"XXX|XXX|1"]) {
|
|
if (type == CocoaDebugToolTypeProtobuf) {
|
|
fileInfo = @"Protobuf\n";
|
|
} else {
|
|
fileInfo = @"\n";
|
|
}
|
|
}
|
|
|
|
//
|
|
if (type == CocoaDebugToolTypeNone) {
|
|
if ([fileInfo isEqualToString:@" \n"]) {//nslog
|
|
fileInfo = @"NSLog\n";
|
|
} else if ([fileInfo isEqualToString:@"\n"]) {//color
|
|
fileInfo = @"\n";
|
|
}
|
|
}
|
|
|
|
//RN (java script)
|
|
if ([fileInfo isEqualToString:@"[RCTLogError]\n"]) {
|
|
fileInfo = @"[error]\n";
|
|
} else if ([fileInfo isEqualToString:@"[RCTLogInfo]\n"]) {
|
|
fileInfo = @"[log]\n";
|
|
}
|
|
|
|
//
|
|
self.Id = [[NSUUID UUID] UUIDString];
|
|
self.fileInfo = fileInfo;
|
|
self.date = [NSDate date];
|
|
self.color = color;
|
|
self.isTag = isTag;
|
|
|
|
if ([content isKindOfClass:[NSString class]]) {
|
|
self.contentData = [content dataUsingEncoding:NSUTF8StringEncoding];
|
|
}
|
|
|
|
//避免日志数量过多导致卡顿
|
|
if (content.length > 1000) {
|
|
content = [content substringToIndex:1000];
|
|
}
|
|
self.content = content;
|
|
|
|
/////////////////////////////////////////////////////////////////////////
|
|
|
|
NSInteger startIndex = 0;
|
|
NSInteger lenghtDate = 0;
|
|
NSString *stringContent = @"";
|
|
|
|
stringContent = [stringContent stringByAppendingFormat:@"[%@]", [_OCLoggerFormat formatDate:self.date]];
|
|
lenghtDate = [stringContent length];
|
|
startIndex = [stringContent length];
|
|
|
|
if (self.fileInfo) {
|
|
stringContent = [stringContent stringByAppendingFormat:@"%@%@", self.fileInfo, self.content];
|
|
} else {
|
|
stringContent = [stringContent stringByAppendingFormat:@"%@", self.content];
|
|
}
|
|
|
|
NSMutableAttributedString *attstr = [[NSMutableAttributedString alloc] initWithString:stringContent];
|
|
[attstr addAttribute:NSForegroundColorAttributeName value:self.color range:NSMakeRange(0, [stringContent length])];
|
|
|
|
NSRange range = NSMakeRange(0, lenghtDate);
|
|
[attstr addAttribute:NSForegroundColorAttributeName value: [[_NetworkHelper shared] mainColor] range: range];
|
|
[attstr addAttribute:NSFontAttributeName value: [UIFont boldSystemFontOfSize:12] range: range];
|
|
|
|
NSRange range2 = NSMakeRange(startIndex, self.fileInfo.length);
|
|
|
|
if ([self.fileInfo isEqualToString:@"[error]\n"]) {
|
|
[attstr addAttribute: NSForegroundColorAttributeName value: [UIColor systemRedColor] range: range2];
|
|
} else {
|
|
[attstr addAttribute: NSForegroundColorAttributeName value: [UIColor systemGrayColor] range: range2];
|
|
}
|
|
|
|
[attstr addAttribute: NSFontAttributeName value: [UIFont boldSystemFontOfSize:12] range: range2];
|
|
|
|
|
|
//换行
|
|
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
|
|
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
|
|
|
|
NSRange rang3 = NSMakeRange(0, attstr.length);
|
|
[attstr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:rang3];
|
|
|
|
|
|
//
|
|
self.str = stringContent;
|
|
self.attr = [attstr copy];
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
@end
|