swift – XCGLogger 3.0不会将logfile写入文件系统(iOS 9)

swift – XCGLogger 3.0不会将logfile写入文件系统(iOS 9),第1张

概述我想使用XCGLogger 3.0在用 Swift 2编写的iOS9应用程序中进行日志记录.在AppDelegate中,我定义 let log = XCGLogger.defaultInstance() 并在应用程序中:didFinishLaunchingWithOptions我使用以下命令进行设置: log.setup(.Debug, showThreadName: true, showLogL 我想使用XCGLogger 3.0在用 Swift 2编写的iOS9应用程序中进行日志记录.在AppDelegate中,我定义

let log = XCGLogger.defaultInstance()

并在应用程序中:dIDFinishLaunchingWithOptions我使用以下命令进行设置:

log.setup(.DeBUG,showThreadname: true,showLogLevel: true,showfilenames: true,showlineNumbers: true,writetofile: "/tmp/app.log",fileLogLevel: .DeBUG)

当我在模拟器中启动应用程序时,我在XCode 7的控制台中看到了XCGLogger的输出.输出是:

2015-11-04 18:28:40.798 [Info] > myapp Version: 1.0 Build: 1 PID: 49243

2015-11-04 18:28:40.798 [Info] > XCGLogger Version: 3.0 – LogLevel: DeBUG

2015-11-04 18:28:40.801 [Info] > XCGLogger writing to log to: file:///tmp/app.log

但是,当我查看正确的模拟器实例的沙箱文件系统(使用SimPholders2)时,没有日志文件app.log.

当我在我的iPhone 6上启动应用程序时更糟糕.XCode控制台中的输出是:

2015-11-04 18:36:14.692 [Error] > Attempt to open log file for writing Failed: The operation Couldn’t be completed. (Cocoa error 2.)

我也尝试了不同的方法,如“/tmp/app.log”,“library / Caches / de.myIDentifIEr.myapp / app.log”,“/ library / Cache / de.myIDentifIEr.myapp / app.log”等.没有成功…

我究竟做错了什么?

解决方法 在iOS上,您不能只写入/ tmp文件夹.您需要确保路径位于应用程序的沙箱中.

为此,您需要向系统询问缓存目录. XCGLogger中的示例应用程序包含执行此 *** 作的代码,但我也将其包含在此处.

试试这个:

let cacheDirectory: NSURL = {    let urls = NSfileManager.defaultManager().URLsForDirectory(.CachesDirectory,inDomains: .UserDomainMask)    return urls[urls.endindex - 1] }()let logPath: NSURL = cacheDirectory.URLByAppendingPathComponent("app.log")log.setup(.DeBUG,writetofile: logPath,fileLogLevel: .DeBUG)
@H_403_64@ 总结

以上是内存溢出为你收集整理的swift – XCGLogger 3.0不会将logfile写入文件系统(iOS 9)全部内容,希望文章能够帮你解决swift – XCGLogger 3.0不会将logfile写入文件系统(iOS 9)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1001602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存