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

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