美文网首页
YHDevelopFramework_Log

YHDevelopFramework_Log

作者: CatLogic | 来源:发表于2016-07-18 22:49 被阅读0次

    YHDevelopFramework

    目录:framework/Component/logComponent
    
    Log

    闲来无事,打算做一些开发常用的工具或组件,方便以后自己的开发和使用。所以,全是干货。。
    工欲善其事必先利其器,作为重中之重的当然是 日志工具了。在有日志工具的帮助下,才能更加高效的定位问题,分析问题,解决问题。说多了都是废话,show me your code~

    Log目录

    YHLogger.h
    YHLogger.m //主类
    YHLogFormat.h
    YHLogFormat.m //日志格式类
    YHCrashCatch.h
    YHCrashCatch.m //崩溃信息捕捉类

    源码介绍

    此日志工具是基于第三方CocoaLumberjack开发。

    1.YHCrashCatch

    此文件主要结构如下:

    @protocol YHCrashHandle <NSObject>
    
    @optional
    /**
     *  当捕获到一个新的异常时调用
     *
     *  @param detailCrash 异常原因
     */
    - (void)crashHandleCatchOneNewCrash:(NSString *)crashDetailInfo;
    
    @end
    /**
     * @class YHCrashCatch
     *
     * @abstract 捕获崩溃信息
     *
     */
    @interface YHCrashCatch : NSObject
    //异常处理代理
    @property (nonatomic,weak) id<YHCrashHandle> delegate;
    /**
     *  捕获崩溃默认对象
     *
     *  @notice 不建议创建多个实例,建议使用默认
     *  @return YHCrashCatch *obj
     */
    + (instancetype)defaultCrashCatch;
    /**
     *  启动获取崩溃信息
     */
    - (void)catchCrash;
    
    @end
    
    
    2.YHLogFormat

    此文件主要是遵守协议,实现日志格式的规范化。

    <DDLogFormatter>
    - (NSString *)formatLogMessage:(DDLogMessage *)logMessage;
    
    3.YHLogger

    此类提供的主要方法:

    //崩溃日志处理代理
    @property (nonatomic,weak) id<YHLoggerHandle> delegate;
    /**
     *  初始化log组件
     */
    + (void)defaultLog;
    /**
     *  获取logger对象,用来设置delegate
     */
    + (instancetype)getLogger;
    /**
     *  设置日志格式
     */
    + (void)setLogFormat:(id<DDLogFormatter>)format;
    /**
     *  设置写入文件的日志等级,同时将符合等级的日志写入文件内
     *
     *  @param level DDLogLevel
     */
    + (void)setFileLogLevel:(DDLogLevel)level;
    /**
     *  开始捕获崩溃信息
     */
    + (void)startCatchCrashInfo;
    
    

    此类提供了以上几个方法,如注释所示。并且该类实现了YHCrashHandle协议,用来处理Crash信息。
    同时提供协议,供用户处理<YHLoggerHandle>

    @optional
    /**
     *  获取所有正常的日志文件路径
     *
     *  @param filePathList 日志路径信息
     */
    - (void)showAllNormalLogFilePath:(NSArray *)filePathList;
    /**
     *  获取所有崩溃日志的路径信息
     *
     *  @param filePathList 所有崩溃日志的路径信息
     */
    - (void)showALLCrashLogFilePath:(NSArray *)filePathList;
    /**
     *  当有一个新的崩溃日志可用时
     *
     *  @param filePath 新的崩溃日志的路径
     */
    - (void)oneNewCrashLogFileAvaliable:(NSString *)filePath;
    

    使用方式

        [YHLogger defaultLog];
        [YHLogger setLogFormat:[[YHLogFormat alloc] init]];
        [YHLogger setFileLogLevel:DDLogLevelInfo];
        [YHLogger startCatchCrashInfo];
        [YHLogger getLogger].delegate = self;
        //实现其代理方法,拿到日志文件路径后剩下的就交给你为所欲为了:) ~
    
    PS: 也可以自己实现YHCrashCatch协议,处理崩溃信息。
        也可以在此基础上在封装一层,方便使用。为什么我不封装的更便捷??因为这是偏底层的,要提供灵活性供程序猿进一步按照自己的需求封装,
        所以尽量求简单、扩展,而把如何处理这些信息的任务交给你来决定,我只负责帮你把所需的信息给你。所以咯,Up To You~
        到现在还不会用。。。怪我太懒咯。。DDLogxxx(***);**DDLog的使用详情见第三方**
    

    看~灰机~灰机灰过来了~灰机又灰过去了

    相关文章

      网友评论

          本文标题:YHDevelopFramework_Log

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