3

I am using CocoaLumberjack V2.4 to save log into file.

This is the default code to set saving log into file:

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

Log is saved in default place: /AppData/Library/Caches/Logs/

I want implement an API to remove the saved log manually. I check they have Manually clear logs as the open issue there. Anyone has suggestion?

xiaoyaoworm
  • 1,052
  • 4
  • 13
  • 32

3 Answers3

6

This should work for you:

[fileLogger rollLogFileWithCompletionBlock: ^{
    for (NSString *filename in fileLogger.logFileManager.sortedLogFilePaths) {
    [[NSFileManager defaultManager] removeItemAtPath:filename error:nil];
    }
}];
Chris Edgington
  • 1,208
  • 12
  • 11
4

Swift Answer:

 fileLogger.rollLogFile(withCompletion: {
            for filename: String in self.fileLogger.logFileManager.sortedLogFilePaths {
                do {
                    try FileManager.default.removeItem(atPath: filename)
                } catch {
                    print(error.localizedDescription)
                }
            }
        })
Abhishek
  • 358
  • 3
  • 10
1

Try this one in 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)
                    }
                }
            }
        }
    }
}
Kimi Chiu
  • 2,103
  • 3
  • 22
  • 37