#import <Foundation/Foundation.h>
#import <CocoaLumberjack.h>
NS_ASSUME_NONNULL_BEGIN
@interface iCLogFormatter : NSObject<DDLogFormatter>
@end
NS_ASSUME_NONNULL_END
#import <Foundation/Foundation.h>
#import "iCLogFormatter.h"
#if DEBUG
static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
#else
static const DDLogLevel ddLogLevel = DDLogLevelError;
#endif
NS_ASSUME_NONNULL_BEGIN
@interface iCLogManager : NSObject
@property (nonatomic,strong) DDFileLogger *fileLogger;
+(instancetype)shareInstence;
- (void)config;
@end
NS_ASSUME_NONNULL_END
#import "iCLogManager.h"
@implementation iCLogManager
/**配置日志信息*/
- (void)config
{
iCLogFormatter *logFormatter = [[iCLogFormatter alloc] init];
//1.发送日志语句到苹果的日志系统,它们显示在Console.app上
// [[DDASLLogger sharedInstance] setLogFormatter:logFormatter];
// [DDLog addLogger:[DDASLLogger sharedInstance]];//
//2.把输出日志写到文件中
// DDFileLogger *fileLogger = [DDLogManager shareInstence].fileLogger;
// [fileLogger setLogFormatter:logFormatter];
// [DDLog addLogger:fileLogger withLevel:DDLogLevelError];//错误的写到文件中
//3.初始化DDLog日志输出,在这里,我们仅仅希望在xCode控制台输出
[[DDTTYLogger sharedInstance] setLogFormatter:logFormatter];
[[DDTTYLogger sharedInstance] setColorsEnabled:YES];// 启用颜色区分
[[DDTTYLogger sharedInstance] setForegroundColor:DDMakeColor(255, 0, 0)
backgroundColor:nil
forFlag:DDLogFlagError];
[[DDTTYLogger sharedInstance] setForegroundColor:DDMakeColor(125,200,80)
backgroundColor:nil
forFlag:DDLogFlagInfo];
[[DDTTYLogger sharedInstance] setForegroundColor:DDMakeColor(200,100,200)
backgroundColor:nil
forFlag:DDLogFlagDebug];
[DDLog addLogger:[DDTTYLogger sharedInstance]];//
//4.添加数据库输出
// DDAbstractLogger *dateBaseLogger = [[DDAbstractLogger alloc] init];
// [dateBaseLogger setLogFormatter:logFormatter];
// [DDLog addLogger:dateBaseLogger];
}
/**
* 初始化
*
* @return 日志系统管理器对象
*/
+(instancetype)shareInstence
{
static iCLogManager *logmanager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
logmanager = [[self alloc] init];
});
return logmanager;
}
-(instancetype)init
{
self = [super init];
if (self)
{
self.fileLogger = [[DDFileLogger alloc] init];
self.fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
self.fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
self.fileLogger.maximumFileSize = 1024 * 1024 * 2;
}
return self;
}
@end
#import "iCLogFormatter.h"
@implementation iCLogFormatter
- (NSString *)formatLogMessage:(DDLogMessage *)logMessage {
NSString *loglevel = nil;
switch (logMessage.flag)
{
case DDLogFlagError:
{
loglevel = @"[ERROR]--->?";
}
break;
case DDLogFlagWarning:
{
loglevel = @"[WARN]---->?";
}
break;
case DDLogFlagInfo:
{
loglevel = @"[INFO]---->?";
}
break;
case DDLogFlagDebug:
{
loglevel = @"[DEBUG]--->?";
}
break;
case DDLogFlagVerbose:
{
loglevel = @"[VBOSE]--->?";
}
break;
default:
break;
}
NSString *formatStr = [NSString stringWithFormat:@"⭕️%@ %@ %@---->[第%lu行]-->‼️???%@", loglevel,[logMessage->_timestamp stringWithFormat:@"yyyy-MM-dd HH:mm:ss"], logMessage->_function,(unsigned long)logMessage->_line, logMessage->_message];
return formatStr;
}
@end