1

我正在使用CocoaLumberjack V2.4 将日志保存到文件中。

这是将日志保存到文件中的默认代码:

    DDFileLogger *fileLogger = [[DDFileLogger alloc] init]; // File Logger
    fileLogger.rollingFrequency = 60 * 60 * 24; // 24 hour rolling
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7;
    [DDLog addLogger:fileLogger];

日志保存在默认位置:/AppData/Library/Caches/Logs/

我想实现一个 API 来手动删除保存的日志。我检查他们有手动清除日志作为未解决的问题。有人有建议吗?

4

3 回答 3

6

这应该适合你:

[fileLogger rollLogFileWithCompletionBlock: ^{
    for (NSString *filename in fileLogger.logFileManager.sortedLogFilePaths) {
    [[NSFileManager defaultManager] removeItemAtPath:filename error:nil];
    }
}];
于 2017-02-28T05:07:31.103 回答
2

迅速回答:

 fileLogger.rollLogFile(withCompletion: {
            for filename: String in self.fileLogger.logFileManager.sortedLogFilePaths {
                do {
                    try FileManager.default.removeItem(atPath: filename)
                } catch {
                    print(error.localizedDescription)
                }
            }
        })
于 2018-09-26T12:36:45.293 回答
1

在 Swift 中试试这个。

func clearLogs(){
    let logHelper = LogHelper(subsystem: "Logs", category: "Clear")

    logHelper.i("Clearing logs...")

    for logger in DDLog.allLoggers {
        if let fileLogger = logger as? DDFileLogger {
            fileLogger.rollLogFile{
                for path in fileLogger.logFileManager.sortedLogFilePaths {
                    let fileURL = URL(fileURLWithPath: path)

                    logHelper.i("\(fileURL)")
                    do {
                        try FileManager.default.removeItem(at: fileURL)
                        logHelper.i("Done!")
                    }
                    catch {
                        logHelper.e(error.localizedDescription)
                    }
                }
            }
        }
    }
}
于 2019-07-14T09:54:23.787 回答