看了網(wǎng)上相關(guān)的介紹比較少吸祟,個(gè)人感覺(jué)它比較實(shí)用缀去,寫(xiě)一下用法履恩。
==本人已經(jīng)將其封裝港庄,github地址 直接pod GQLogger 也可以放心食用 ??
博文地址 https://linit.space/ios-lumberjacklauncher-shi-yong/ ==
主要功能
- 結(jié)合ddlog也就是CocoaLumberjack使用倔既,能將打印的日志顯示到一個(gè)View上,便于開(kāi)發(fā)排查問(wèn)題鹏氧,直接顯示網(wǎng)絡(luò)包等渤涌。
- 方便查看打印的Log
界面展示
用法
- 頭文件
#import "LumberjackLauncher.h"
- 初始化
[LumberjackLauncher launchStandardLoggers];
- 配置
[LumberjackLauncher setXcodeConsoleLogColorsWithErrorColor:self.setting.errorColor
warningColor:self.setting.warningColor
infoColor:self.setting.infoColor
debugColor:self.setting.debugColor verboseColor:self.setting.verboseColor];
- 使用
[LumberjackLauncher showAppConsole];
[LumberjackLauncher hideAppConsole];
代碼
GQLogger.h
#import <Foundation/Foundation.h>
#import "GQLoggerSetting.h"
typedef void(^GQLoggerSettingBlock)(GQLoggerSetting *setting);
@interface GQLogger : NSObject
+ (instancetype)sharedInstance;
- (void)activeWithSetting:(GQLoggerSettingBlock) settingBlock;
- (void)stop;
- (void)showConsole;
- (void)closeConsole;
- (NSString *)logPath;
@end
GQLogger.m
#import "GQLogger.h"
#import "LumberjackLauncher.h"
static GQLogger *sharedInstance;
@interface GQLogger()
@property (nonatomic, assign, getter = isActive)BOOL active;
@property (nonatomic, strong)GQLoggerSetting *setting;
@property (nonatomic, strong)DDFileLogger *fileLogger;
@end
@implementation GQLogger
+ (instancetype)sharedInstance
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[[self class] alloc] init];
});
return sharedInstance;
}
- (instancetype)init
{
if (sharedInstance != nil) {
return sharedInstance;
}
if ((self = [super init])) {
}
return self;
}
- (GQLoggerSetting *)setting
{
if (_setting == nil) {
_setting = [[GQLoggerSetting alloc] init];
_setting.errorColor = [UIColor redColor];
_setting.warningColor = [UIColor yellowColor];
_setting.infoColor = [UIColor greenColor];
_setting.debugColor = [UIColor darkGrayColor];
}
return _setting;
}
- (DDFileLogger *)fileLogger
{
if (_fileLogger == nil) {
_fileLogger = [[DDFileLogger alloc] init];
_fileLogger.maximumFileSize = 1024 * 1024;
_fileLogger.rollingFrequency = 60 * 60;
[[_fileLogger logFileManager] setMaximumNumberOfLogFiles:7];
}
return _fileLogger;
}
- (void)activeWithSetting:(GQLoggerSettingBlock)settingBlock
{
if (self.isActive) {
return;
}
self.active = YES;
if (settingBlock) {
settingBlock(self.setting);
}
[self activeLogger];
}
- (void)stop
{
if (!self.isActive) {
return;
}
self.active = NO;
[LumberjackLauncher changeStandardLoggersLevel:DDLogLevelOff];
[LumberjackLauncher changeAppConsoleLoggerLevel:DDLogLevelOff];
[DDLog removeLogger:self.fileLogger];
[DDLog addLogger:self.fileLogger withLevel:DDLogLevelOff];
}
- (void)showConsole
{
[LumberjackLauncher showAppConsole];
}
- (void)closeConsole
{
[LumberjackLauncher hideAppConsole];
}
- (NSString *)logPath
{
return self.fileLogger.currentLogFileInfo.filePath;
}
- (void)activeLogger
{
[LumberjackLauncher launchStandardLoggers];
[LumberjackLauncher setXcodeConsoleLogColorsWithErrorColor:self.setting.errorColor
warningColor:self.setting.warningColor
infoColor:self.setting.infoColor
debugColor:self.setting.debugColor verboseColor:self.setting.verboseColor];
DDLogLevel logLevel = DDLogLevelAll;
[LumberjackLauncher changeStandardLoggersLevel:logLevel];
[LumberjackLauncher changeAppConsoleLoggerLevel:logLevel];
[DDLog removeLogger:self.fileLogger];
[DDLog addLogger:self.fileLogger withLevel:logLevel];
}
@end