Meshtastic-Apple/MeshtasticClient/Helpers/MeshLogger.swift

33 lines
925 B
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
}
let formatter = DateFormatter()
formatter.dateFormat = "M/d/yy h:mm:ss.SSSS"
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)
}
}
}