Meshtastic-Apple/Meshtastic/Helpers/MeshLogger.swift

35 lines
1.1 KiB
Swift
Raw Normal View History

import Foundation
2021-11-16 10:14:20 -08:00
class MeshLogger {
2021-12-25 23:48:12 -08:00
static var logFile: URL? {
guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return nil }
let fileName = "mesh.log"
return documentsDirectory.appendingPathComponent(fileName)
}
static func log(_ message: String) {
guard let logFile = logFile else {
return
}
2022-12-31 00:26:59 -08:00
let localeDateFormat = DateFormatter.dateFormat(fromTemplate: "yyMMddjmmssSSa", options: 0, locale: Locale.current)
let dateFormatString = (localeDateFormat ?? "MM/dd/YY j:mm:ss.SS a")
2023-03-06 10:33:18 -08:00
let formatter = DateFormatter()
2022-12-31 00:26:59 -08:00
formatter.dateFormat = dateFormatString
let timestamp = formatter.string(from: Date())
guard let data = (message + " - " + timestamp + "\n").data(using: String.Encoding.utf8) else { return }
2022-05-27 22:14:57 -07:00
print(message)
if FileManager.default.fileExists(atPath: logFile.path) {
if let fileHandle = try? FileHandle(forWritingTo: logFile) {
fileHandle.seekToEndOfFile()
fileHandle.write(data)
fileHandle.closeFile()
}
} else {
try? data.write(to: logFile, options: .atomicWrite)
}
}
}