美文网首页ios面试汇总
iOS全解13:日志CocoaLumberjack、崩溃处理

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

作者: lukyy | 来源:发表于2021-03-24 12:59 被阅读0次

    一、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
    

    持续更新。。。

    相关文章

      网友评论

        本文标题:iOS全解13:日志CocoaLumberjack、崩溃处理

        本文链接:https://www.haomeiwen.com/subject/cmzchltx.html