CocoaLumberjack是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。XcodeColors是用于控制台着色的工具,配合着CocoaLumberjack用有更好的效果,不废话,先上图:

从上图上看控制台的日志输出不仅仅只有默认的黑色了,而是根据日志等级的不同带有不同的颜色,这样即让我们的编程变的步那么无聊,又让我们能更加清晰的对日志等级做出区分,下面来详细介绍一下应该如何应用:

安装XcodeColors

关于安装XcodeColors相关的介绍我在之前的博客中已经写过了,大家可以去我之前的博客上去查看,传送门

关于XcodeColors的一些配置问题

  1. XcodeColors是否安装成功:

    关于是否安装成功可以通过安装好的的Alcatraz - 插件管理工具去查看是否安装成功,如果如下图所示说明安装成功:

    或者去~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/XcodeColors.xcplugin这个文件目录下查看是否有XcodeColors的插件包。

  2. 配置XcodeColors的Xcode环境:

发现安装好之后并没有生效,那说明你的Xcode环境还没有配置好,根据下图流程配置好XcodeColors的Xcode环境就可以使用了:

进入后在需要下图的模式下加入环境变量 XcodeColors:YES

到这里就大功告成了,下面我们把CocoaLumberjack导入我们的工程中就能使用了。

使用CocoaLumberjack

首先我们使用pod导入CocoaLumberjack,再你的Podfile文件中加入下面一行代码pod 'CocoaLumberjack/Swift',然后执行pod install的命令,完成后你的工程中就有CocoaLumberjack了。

  1. 首先我们要配置CocoaLumberjack的相关参数,代码如下:
    /**
     配置DDLog相关参数
     */
    class func configDDLog() {
        //让日志只在debug时输出
        #if DEBUG
            defaultDebugLevel = .Verbose
        #else
            defaultDebugLevel = .Off
        #endif
        //添加发送日志语句到苹果的日志系统
        DDLog.addLogger(DDASLLogger.sharedInstance())
        //添加发送日志语句到Xcode控制台
        DDLog.addLogger(DDTTYLogger.sharedInstance())
        //允许控制台带颜色
        DDTTYLogger.sharedInstance().colorsEnabled = true
        //设置Info下为蓝色
        DDTTYLogger.sharedInstance().setForegroundColor(UIColor.blueColor(), backgroundColor: UIColor.whiteColor(), forFlag: .Info)
    }
  1. 然后我们写一个名叫AppLog.swift文件封装一下CocoaLumberjack的方法来调用日志输出功能,这样我们只用import CocoaLumberjack

    一次就行了,代码如下:
import Foundation
import CocoaLumberjack

/**
 得到输出的字符串的格式

 - parameter message:  日志消息的主题
 - parameter file:     日志消息所在的文件,方便调试定位用
 - parameter function: 日志消息所在的方法,方便调试定位用
 - parameter line:     日志消息所在的方法中的行数,方便调试定位用

 - returns: 返回输出的日志字符串
 */
private func getMessage(message: String, file: StaticString , function: StaticString , line: UInt ) -> String {
    //初始化需要返回的字符串
    var returnMessage:String = ""
    //通过file获取文件的名称
    if let className = file.stringValue.componentsSeparatedByString("/").last {
        //拼接字符串
        returnMessage = "\n" +
                  "className:\(className)\n" +
                  " function:\(function)\n" +
                  "      ine:\(line)\n" +
                  "  message:\(message)"
    }else {
        //拼接字符串
        returnMessage = "\n" +
            " function:\(function)\n" +
            "      ine:\(line)\n" +
            "  message:\(message)"
    }
    return returnMessage
}

/**
   输出Info等级的日志消息
 */
public func LogInfo(message: String, file: StaticString = #file, function: StaticString = #function, line: UInt = #line) {
    DDLogInfo(getMessage(message, file: file, function: function, line: line))
}

/**
 输出Error等级的日志消息
 */
public func LogError(message: String, file: StaticString = #file, function: StaticString = #function, line: UInt = #line) {
    DDLogError(getMessage(message, file: file, function: function, line: line))
}

/**
 输出Debug等级的日志消息
 */
public func LogDebug(message: String, file: StaticString = #file, function: StaticString = #function, line: UInt = #line) {
    DDLogDebug(getMessage(message, file: file, function: function, line: line))
}

/**
 输出Warn等级的日志消息
 */
public func LogWarn(message: String, file: StaticString = #file, function: StaticString = #function, line: UInt = #line) {
    DDLogWarn(getMessage(message, file: file, function: function, line: line))
}

这样我们调用这些全局的方法就打印相关的日志消息了:

LogInfo("WCL, Hello world!")
LogError("WCL, Hello world!")
LogDebug("WCL, Hello world!")
LogWarn("WCL, Hello world!")

以上就是关于这篇博客主要要讲的知识,自己用着挺方便,希望大家能学到东西,如果有需要改进的地方,希望大家能及时告诉我,谢谢大家的阅读~

iOS开发进阶 - 日志输出框架CocoaLumberjack与XcodeColors插件的简单使用(swift版)的更多相关文章

  1. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  2. iOS开发进阶

    <iOS开发进阶>基本信息作者: 唐巧 出版社:电子工业出版社ISBN:9787121247453上架时间:2014-12-26出版日期:2015 年1月开本:16开页码:268版次:1- ...

  3. iOS开发之常用第三方框架(下载地址,使用方法,总结)

    iOS开发之常用第三方框架(下载地址,使用方法,总结) 说句实话,自学了这么久iOS,如果说我不知道的但是又基本上都摸遍了iOS相关知识,但是每次做项目的时候,遇到难一点的地方或者没试过的东西就闷了. ...

  4. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  5. log4j日志输出框架

    什么是log4j框架呢? log4j是一个日志输出框架,用于输出日志的.比如MyBatis的日志就是通过log4j输出的,主流框架都是log4j输出的,Spring框架 也可以通过log4j输出日志! ...

  6. iOS开发进阶(唐巧)读书笔记(一)

    如何提高iOS开发技能 1.阅读博客:https://github.com/tangqiaoboy/iOSBlogCN 40多位iOS开发博主的博客地址 2.读书:每年阅读一本高质量的iOS开发书籍 ...

  7. IOS开发人员经常使用的10个Xcode插件

    IOS开发人员经常使用的10个Xcode插件 申请达人,去除赞助商链接 一个合适的插件意味着它能够适应不同的开发环境,Sublime Text 和TextMate就是非常好的样例.你知道Xcode也支 ...

  8. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  9. iOS开发UI篇—Date Picker和UITool Bar控件简单介绍

    iOS开发UI篇—Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...

随机推荐

  1. 71、Android上对Cookie的读写操作

    Cookie是为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据,在Android中也经常用到,接下来我们介绍Cookie在Android里是如何进行读写的.   Cookie其实就 ...

  2. 【Linux】命令学习笔记和总结

    莫名的想学习一下Linux了,因为对这方面的知识储备为0.对于命令行界面始终是零接触零了解,对一个程序员来说这几乎是致命的,所以简单了解一下. 一.教程参考 参考菜鸟教程即可: Linux 教程 | ...

  3. <2014 05 09> Lucida:我的算法学习之路

    [转载] 我的算法学习之路 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以 ...

  4. Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)

    https://www.jb51.net/article/49789.htm 首先说下,由于最新的 0.8 版还是开发版本,因此我使用的是 0.79 版,API 也许会有些不同.因为我是搭配 MySQ ...

  5. Spring Data HelloWorld(三)

    在 Spring Data 环境搭建(二) 的基础之上 我们改动  http://www.cnblogs.com/fzng/p/7253068.html 定义个一个接口  继承Repository类 ...

  6. 转!!关于java类初始化顺序

    原文地址:http://www.cnblogs.com/luckygxf/p/4796955.html 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方 ...

  7. Consistent hashing

    Download source code - 20.3 KB What is libconhash libconhash is a consistent hashing library which c ...

  8. 【我的Android进阶之旅】Android Studio查看Logcat时,如果一行Log太长如何换行显示?

    使用Android Studio一段时间了,还有很多小技巧没有掌握.今天又发现了一个比较好用的小技巧,这里分享出来. 1.Android Studio默认显示效果 比如我们用Logcat来查看打印的L ...

  9. mysql 建立表之间关系 一对一 练习2

    创建db5数据库 create database db5 charset=utf8; use db5; 例二:一个管理员唯一对应一个用户 用户表: id user password 1 egon xx ...

  10. java中jdk安装配置信息

    由于被人比较懒,有些做过的事情总是好忘,这个也不例外,索性就做个随笔. JAVA_HOMEC:\Program Files (x86)\Java\jdk1.7.0_03CLASSPATH.;%JAVA ...