如何在代码中记Log(swift语言)

如何在代码中记Log (swift语法)

  • 在我们做代码调试时可以在Xcode的控制台上打印输出,也可以在代码中写一个log文件来记录,然后在
    运行完代码后可以再log.txt的文件中来看刚才记录的log中所打印的输出中是否运行了某个函数,便可以

看出程序是在那个地方出的问题

下面便是已经封装好的代码程序:

func Log<T>(message:T, file:String = #file, function:String = #function, line:Int = #line){
    //获取文件名
    let fileName = (file as NSString).lastPathComponent
    //日志内容
    let consolerStr = "\(fileName):\(line)\(function) | \(message)"
    //打印日志内容
    print(consolerStr)
    //创建一个日期格式器
    let dateForMatter = NSDateForMatter()
    //为日期格式器设置日期格式字符串
    dateForMatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    //使用日期格式器格式化当前的日期和时间
    let today = NSDate()
    let dateString = dateForMatter.stringFromDate(today)
    //将内容同步写到文件中去(在Document文件夹下)
    let documentPath = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDire-  
    ctory.documentDirectory,inDomains: .UserDomainMask)[0]  
    let path = documentPath.URLByAppendingPathComponent("Log.txt")
    appendText(path,string:"\(dateString) \(consolerStr)")
}
//在文件末尾加上新的内容
func appendText(fileURL:NSURL,string:String){
    do{
        //如果文件夹不存在,新建一个文件夹
        if !NSFileManager.defaultManager().fileExistsAtPath(fileURL.path){
            NSFileManager.defaultManager().createFilePath(fileURL.path!,contents: nil,
            attributes: nil)
        }
        let fileHandle = NSFileHandle.init(forWritingAtPath: fileURL.path!)
        let stringToWrite = "\n" + string
        //在文件末尾的地方添加
        fileHandle!.seekToEndOfFile()
        fileHandle?.writeData(stringToWrite.dataUsingEncoding(NSUTF8StringEncoding!))
    } catch let error as NSError{
        print("failed to append: \(error)")
    }
}

  • 在需要记log的地方只需要调用 Log(“需要记录的内容”) 即可。
  • 关于如何在iTunes上获取记录好的Log文件可以参考我的上一篇博客。

猜你喜欢

转载自blog.csdn.net/qq_37269542/article/details/54571562