Вы можете загрузить файлы журнала с подключенного устройства или отправить напрямую из приложения. Оба подхода описаны ниже.
Отправка файлов журнала из приложения по электронной почте, в 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
, который представляет собой все файлы журнала, объединенные вместе.
Особая благодарность - Это в значительной степени перевод Swift с версии Objective-C, приведенной в другом ответе.
Получение файлов журнала с устройства напрямую через USB-кабель
Если вы хотите получить файлы журнала, созданные вашим приложением во время работы на устройстве,
- Подключите ваше устройство к вашему Mac
- В Xcode, зайдите в Окно -> Устройства
- В левом верхнем углу списка устройств нажмите на подключенное устройство.
- На главной панели в разделе Установленные приложения выберите приложение, в котором вы запустили CocoaLumberjack.
- В нижней части списка установленных приложений щелкните значок шестеренки, а затем - Скачать контейнер.
- В Finder щелкните правой кнопкой мыши (показать меню) на сохраненном файле .xcappdata и выберите «Показать содержимое пакета»
- Файлы журнала сохраняются в
/AppData/Library/Caches/Logs/
Было бы неплохо, если бы это было полезно для вас!