您的位置:首页 > 移动开发 > Swift

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

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



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

安装XcodeColors

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

关于XcodeColors的一些配置问题

XcodeColors是否安装成功:

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



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

配置XcodeColors的Xcode环境:

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



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




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

使用CocoaLumberjack

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

首先我们要配置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)
}


然后我们写一个名叫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!")




以上就是关于这篇博客主要要讲的知识,自己用着挺方便,希望大家能学到东西,如果有需要改进的地方,希望大家能及时告诉我,谢谢大家的阅读~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift 插件 ios开发