使用 freopen 将日志内容写入文本文件,不适用于 Swift
Write log content into text file using freopen not working with Swift
我想将每个 print() 内容写入 Swift 3.0 中的文本文件。
它在 Objective-C 中工作正常但在 Swift 3.0 中不起作用。
我正在使用如下代码,
func redirectLogToDocuments() {
let docDirectory: NSString = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as NSString
let logpath = docDirectory.appendingPathComponent("Logfile.txt")
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdin)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdout)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stderr)
}
请帮帮我。
func redirectLogToDocuments() {
let allPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = allPaths.first!
let pathStringComponent = "/" + LoggingConstants.LogFileName + "." + LoggingConstants.LogFileType
let pathForLog = (documentsDirectory as NSString).appending(pathStringComponent)
freopen(pathForLog.cString(using: String.Encoding.ascii)!, "a+", stderr)
}
在 didFinishLaunching() 中使用上面的方法,然后使用 NSLog() 语句而不是 print() ,你会得到你想要的。
我想将每个 print() 内容写入 Swift 3.0 中的文本文件。 它在 Objective-C 中工作正常但在 Swift 3.0 中不起作用。 我正在使用如下代码,
func redirectLogToDocuments() {
let docDirectory: NSString = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] as NSString
let logpath = docDirectory.appendingPathComponent("Logfile.txt")
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdin)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stdout)
freopen(logpath.cString(using: String.Encoding.utf8)!, "a+", stderr)
}
请帮帮我。
func redirectLogToDocuments() {
let allPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = allPaths.first!
let pathStringComponent = "/" + LoggingConstants.LogFileName + "." + LoggingConstants.LogFileType
let pathForLog = (documentsDirectory as NSString).appending(pathStringComponent)
freopen(pathForLog.cString(using: String.Encoding.ascii)!, "a+", stderr)
}
在 didFinishLaunching() 中使用上面的方法,然后使用 NSLog() 语句而不是 print() ,你会得到你想要的。