Вы можете загрузить файлы журнала с подключенного устройства или отправить их прямо из приложения. Оба подхода описаны ниже.
Отправка файлов журнала из приложения по электронной почте в 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(["[email protected]"])
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/
Было бы неплохо проголосовать, если это полезно для вас!
person
Daniel
schedule
22.12.2012