swift怎么自定义Log

作者: zhanming | 来源:发表于2016-05-13 14:11 被阅读319次

最近在开发swift经常使用printf来打印,大家都知道打印是一件很耗性能的事情,在OC中有 NSLog(format, ...) 自定义Log(format, ##VA_ARGS) 的宏可以使用,在swift中该怎么办呢,网上也有第三方的log但是本着减少对第三方的依赖的想法我们来自定义Log


自定义Log

首先我们新建一个类写一个公共的泛型函数

public func ZMLogs<T>(debug: T, _ file: String = #file , _ function: String = #function, _ line: Int = #line) {
if(ZMLogsManger.enabled)
{
    //let fileExtension = file.ns.lastPathComponent.ns.pathExtension
    let filename = file.ns.lastPathComponent.ns.stringByDeletingPathExtension
    print("\(filename):\(function):[\(line)]\(debug)")
}

}

我来解释一下:

  1. #file 获取方法调用者所在的文件路径
  2. #function 获取方法调用者所在的方法名
  3. #line 获取所在的行数

在写一个结构体,里面就一个属性用来管理Log是否开启

public struct ZMLogsManager {

    //是否开启调试
     public static var enabled = true

}

注意:是否开启调试要放在AppDelegate里面设置

好接下来我们在ViewController里写

打印

运行看控制台

控制台

是不是很简单呢这是最基本的功能,以后会继续扩展功能,在这里下载代码

另一种方法:

不写ZMLogsManager,去自定义comstom flags

自定义 输入-D DEBUG

输入-D DEBUG

现在就可以在代码加上

public func ZMLogs<T>(debug: T, _ file: String = #file , _ function: String = #function, _ line: Int = #line) {

    #if DEBUG
    let filename = file.ns.lastPathComponent.ns.stringByDeletingPathExtension
    print("\(filename):\(function):[\(line)]\(debug)")
    #endif
}

这种方式也是可以的是不是更高大上了呢

相关文章

  • Swift中自定义Log

    Swift中自定义Log Swift中自定义Log:依次是类名.方法名.行号.内容. func LTLog(fun...

  • iOS 自定义Log

    swift自定义log一般写在AppDelegate里:AppDelegate.swift:application...

  • Swift自定义log以及其它

    一、自定义Log 在Swift中,我们也需要如OC一样,对log进行自定义。下面是一个我自定义的log,示例如下:...

  • swift怎么自定义Log

    最近在开发swift经常使用printf来打印,大家都知道打印是一件很耗性能的事情,在OC中有 NSLog(for...

  • Swift项目开发实用篇:自定义DEBUG下的LOG

    Swift项目中我们怎么自定义LOG.在DEBUG模式下打印RELEASE模式下不打印?我们通过泛型函数实现(泛型...

  • SWIFT 的一些小知识点

    1、NSLog 在 oc 中使用NSLog,在 swift 中为 print 1.1、自定义 Log 函数 1.2...

  • swift中自定义Log

    swift中自定义log输出日志,swift支持全局函数,不写在任何类中的方法可以当做全局方法使用。这里写在了Ap...

  • Swift 基础(1) -- 自定义LOG

    Swift 3.0 自定义LOG. 知识点一 :系统自带常量(1) #line : 当前行号.(2) #file...

  • Swift 自定义Log

    Swift中打印不像OC那样每次打印系统会自己打印出时间和所在类名,所以在swift中要自己封装.自定义Log要用...

  • swift 自定义Log

    ——> 代表传递过来什么类型,就是什么类型的数据 在swift中,没有#define, 需要在 targe...

网友评论

本文标题:swift怎么自定义Log

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