gpt4 book ai didi

ios - 使用 cocoaLumberjack 将日志文件存储在哪里

转载 作者:IT老高 更新时间:2023-10-28 11:32:26 51 4
gpt4 key购买 nike

我正在使用 cocoaLumberjack 日志框架进行 iOS 日志记录。为了将日志存储在文件中,我使用了此代码。

DDFileLogger* fileLogger = [[DDFileLogger alloc] init];
fileLogger.rollingFrequency = 60 * 60 * 24;
fileLogger.logFileManager.maximumNumberOfLogFiles = 7;

[DDLog addLogger:fileLogger];

DDLogVerbose(@"hello");
NSLog(@"hihihihihi");

我无法找到此代码生成的日志文件的确切存储位置。有人可以帮我解决这个问题吗?

最佳答案

您可以从连接的设备下载日志文件,也可以直接从应用程序发送。下面介绍了这两种方法。

在 Swift 中通过电子邮件从应用程序发送日志文件

在你引用 DDFileLogger 的类中写下这个。我会把它放在一个自定义记录器类中,例如MyLogger.swift

var ddFileLogger: DDFileLogger!

var logFileDataArray: [NSData] {
get {
let logFilePaths = ddFileLogger.logFileManager.sortedLogFilePaths() as! [String]
var logFileDataArray = [NSData]()
for logFilePath in logFilePaths {
let fileURL = NSURL(fileURLWithPath: logFilePath)
if let logFileData = try? NSData(contentsOfURL: fileURL, options: NSDataReadingOptions.DataReadingMappedIfSafe) {
// Insert at front to reverse the order, so that oldest logs appear first.
logFileDataArray.insert(logFileData, atIndex: 0)
}
}
return logFileDataArray
}
}

然后,当用户点击一个按钮表示他们想要发送日志时,

// Required by MFMailComposeViewController
import MessageUI

@IBAction func writeEmailTapped(sender: AnyObject) {
if MFMailComposeViewController.canSendMail() {
let composeVC = MFMailComposeViewController()
composeVC.mailComposeDelegate = self

// Configure the fields of the interface.
composeVC.setToRecipients(["your-email@company.com"])
composeVC.setSubject("Feedback for app")
composeVC.setMessageBody("", isHTML: false)

let attachmentData = NSMutableData()
for logFileData in MyLogger.sharedInstance.logFileDataArray {
attachmentData.appendData(logFileData)
}
composeVC.addAttachmentData(attachmentData, mimeType: "text/plain", fileName: "diagnostic.log")
self.presentViewController(composeVC, animated: true, completion: nil)
} else {
// Tell user about not able to send email directly.
}
}

这会导致撰写电子邮件弹出窗口,其中包含一个名为 diagnostic.log 的附件文件,该文件是连接在一起的所有日志文件。

特别感谢 - 这几乎是另一个答案给出的 Objective-C 版本的 Swift 翻译。

通过 USB 数据线直接从设备获取日志文件

如果您想获取您的应用在设备上运行时创建的日志文件,

  1. 将您的设备连接到您的 Mac
  2. 在 Xcode 中,转到窗口 -> 设备
  3. 在设备列表的左上角,点击已连接的设备。
  4. 在主面板的 Installed Apps 部分下,单击您运行 CocoaLumberjack 的应用程序。
  5. 在已安装的应用列表底部,点击齿轮图标,然后点击下载容器。
  6. 在 Finder 中,右键单击(显示菜单)保存的 .xcappdata 文件并选择显示包内容
  7. 日志文件保存在/AppData/Library/Caches/Logs/

如果这对您有帮助,请投票!

关于ios - 使用 cocoaLumberjack 将日志文件存储在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6411549/

51 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com