我正在尋找一種快速優化的方式來修剪iOS上的日誌文件。我想指定我的日誌文件具有最大行數(例如10,000)。將新行添加到文本文件的末尾似乎相對簡單。但是,我還沒有找到在文件開頭修剪行的快速方法。這是我提出的(慢)代碼。快速修剪iOS上日誌文件開頭行的方法
guard let fileURL = self.fileURL else {
return
}
guard let path = fileURL.path else {
return
}
guard let fileHandle = NSFileHandle(forUpdatingAtPath: path) else {
return
}
fileHandle.seekToEndOfFile()
fileHandle.writeData(message.dataUsingEncoding(NSUTF8StringEncoding)!)
fileHandle.writeData("\n".dataUsingEncoding(NSUTF8StringEncoding)!)
currentLineCount += 1
// TODO: This could probably use some major optimization
if currentLineCount >= maxLineCount {
if let fileString = try? NSString(contentsOfURL: fileURL, encoding: NSUTF8StringEncoding) {
var lines = fileString.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
lines.removeFirst()
let newData = lines.joinWithSeparator("\n")
fileHandle.seekToFileOffset(0)
fileHandle.writeData(newData.dataUsingEncoding(NSUTF8StringEncoding)!)
}
}
fileHandle.closeFile()
我敢肯定的是iOS的一些不錯的第三方記錄解決方案,但我正在尋找一個更明確的解決方案,我可以添加到我自己的自定義日誌代碼。 – JacobJ
看看CocoaLumberJack的代碼。它已經做到了你想要的。 – rmaddy
你確定嗎?看着CocoaLumberJack,我看到了滾動日誌文件的選項,但實際上並沒有看到它修剪日誌文件。 – JacobJ