ios面试汇总

iOS全解13:日志CocoaLumberjack、崩溃处理

2021-03-24  本文已影响0人  lukyy

一、Mac 控制台

Xcode工程其实是可以用命令行来build的,这样就可以用命令行编译出.app的文件,然后就可以打成ipa包。
整个流程做到自动化后,就可以方便的做每日的 daily build,便于产品和测试同事跟进进度!

系统日志App即:控制台 Console.app

可以直接看苹果文档:欢迎使用控制台 - Apple 支持

系统控制台

二、CocoaLumberjack 日志收集

CocoaLumberjack 是一个快速、简单,但很强大的日志框架,用于 Mac OS X 和 iOS 系统。
在大多数用例中,Lumberjack比NSLog快了一个数量级。

Log分为以下几种,分别代表不同的等级:

DDLogError
DDLogWarn
DDLogInfo
DDLogDebug
DDLogVerbose
严重度:

DDLogError>DDLogWarn>DDLogInfo>DDLogDebug>DDLogVerbose

语法
static const DDLogLevel ddLogLevel = DDLogLevelDebug;

`DDLog`语法跟`NSLog`语法一摸一样

# NSLog
NSLog(@"Broken sprocket detected!");
NSLog(@"User selected file:%@ withSize:%u", filePath, fileSize);

# DDLog
DDLogError(@"Broken sprocket detected!");
DDLogVerbose(@"User selected file:%@ withSize:%u", filePath, fileSize);



github库:CocoaLumberjack
导入pod库:pod 'CocoaLumberjack'
使用配置:

#pragma mark 日志处理:CocoaLumberjack
- (void)configurationCocoaLumberjack {
    // Uses os_log
    //[DDLog addLogger:[DDASLLogger sharedInstance]]; //iOS10之前
    [DDLog addLogger:[DDOSLogger sharedInstance]]; //iOS10之后
    [DDLog addLogger:[DDTTYLogger sharedInstance]];
    
    DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; // File Logger
    fileLogger.rollingFrequency = 60 * 60 * 24;             // 24 hour rolling
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
    [DDLog addLogger:fileLogger];
}



使用CocoaLumberjack,出现问题:Use of undeclared identifier 'ddLogLevel'

解决方案:

在 pch文件添加以下配置

#ifdef __OBJC__
// 配置头文件
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CocoaLumberjack/CocoaLumberjack.h>

// 老版本不可用
//#ifdef DEBUG
//    static const int ddLogLevel = LOG_LEVEL_VERBOSE;
//#else
//    static const int ddLogLevel = LOG_LEVEL_WARN;
//#endif

// 使用新版本
#ifdef DEBUG
    static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
#else
    static const DDLogLevel ddLogLevel = DDLogLevelWarning;
#endif

#endif

持续更新。。。

上一篇下一篇

猜你喜欢

热点阅读