美文网首页
IOS CocoaLumberjack 日志 Swift

IOS CocoaLumberjack 日志 Swift

作者: 假装门口当前台 | 来源:发表于2020-03-31 18:33 被阅读0次

    今天想要保存ios日志,存储到本地,后续方面追踪
    网上看到有两种方式
    第一种是直接冲定位NSLog中的日志位置,这种简单,但是功能少,需要自己处理文件

        private func redirectNSlogToDocumentFolder() {
            let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
            let dateFormat = DateFormatter()
            dateFormat.dateFormat = "yyyy-MM-dd"
            let fileName = String(format: "Log-%@.txt", dateFormat.string(from: Date()))
            let logfilePath = documentDirectory + "/" + fileName;
            
            let content = try? String.init(contentsOfFile: logfilePath) 
            freopen(logfilePath.cString(using: .ascii), "a+", stdout)
            freopen(logfilePath.cString(using: .ascii), "a+", stderr)
        }
    

    接着找到了一个第三方库CocoaLumberjack,这个库很强大,支持oc和swift,
    先看看这个库的UML图


    CocoaLumberjack UML图 是不是很吊呢

    但是我用swift一直启动就崩溃,后面找出原因,调用内联函数就crash,集成步骤如下

    采用pod集成方式,用的是swift

    pod 'CocoaLumberjack/Swift'

    然后终端调用install下载

    pod install

    然后就开始使用了,swift 和oc差别就是多了这几个文件



    这里面主要是定义一些内联函数,优化日志输出,方便代码编写,也就是下面的打印日志函数

     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
            // Override point for customization after application launch.
    
            DDLog.add(DDOSLogger.sharedInstance)
            DDLog.add(DDTTYLogger.sharedInstance!)
            DDTTYLogger.sharedInstance?.colorsEnabled = true
            
            let fileLogger = DDFileLogger.init()
            fileLogger.rollingFrequency = 60 * 60 * 24
            fileLogger.logFileManager.maximumNumberOfLogFiles = 7
            DDLog.add(fileLogger)
    
      // 运行就死在这里
          DDLogVerbose("Verbose"); 
            DDLogDebug("Debug");
            DDLogInfo("Info");
            DDLogWarn("Warn");
            DDLogError("Error");
    }
    

    尝试了好久,到上面那句打印日志就crash,后面发现,感觉就是调用的那句没有找到,由于是pod继承,猜想可能是这个CocoaLumberjack.swift没有被工程引入,果断把这个文件拷贝放到工程目录下,然后在运行,完美大吉。

    相关文章

      网友评论

          本文标题:IOS CocoaLumberjack 日志 Swift

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