iOS - LumberjackLauncher 使用 前臺直接查看日志

看了網(wǎng)上相關(guān)的介紹比較少,個人感覺它比較實用,寫一下用法。

==本人已經(jīng)將其封裝,github地址 直接pod GQLogger 也可以放心食用 ??
博文地址 https://linit.space/ios-lumberjacklauncher-shi-yong/ ==

主要功能

  1. 結(jié)合ddlog也就是CocoaLumberjack使用,能將打印的日志顯示到一個View上,便于開發(fā)排查問題,直接顯示網(wǎng)絡(luò)包等。
  2. 方便查看打印的Log

界面展示

Simulator Screen Shot 2016年6月24日 上午10.38.46.png

Simulator Screen Shot 2016年6月24日 上午10.24.47.png

用法

  1. 頭文件
    #import "LumberjackLauncher.h"
  2. 初始化
    [LumberjackLauncher launchStandardLoggers];
  3. 配置
    [LumberjackLauncher setXcodeConsoleLogColorsWithErrorColor:self.setting.errorColor
                                                  warningColor:self.setting.warningColor
                                                     infoColor:self.setting.infoColor
                                                    debugColor:self.setting.debugColor                                                  verboseColor:self.setting.verboseColor];
  1. 使用
 [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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容