如何在iOS中以编程方式清除.log文件的内容

如何在iOS中以编程方式清除.log文件的内容,ios,cocoa,logging,nslog,Ios,Cocoa,Logging,Nslog,在我的应用程序中,我使用以下代码将应用程序的详细信息记录在project.log中 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"proje

在我的应用程序中,我使用以下代码将应用程序的详细信息记录在project.log中

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"project.log"];
freopen([logPath fileSystemRepresentation],"a+",stderr);

这段代码将完美地记录我在nslog中定义的所有细节。现在,我不希望我的日志文件进一步增长。因此,我想清除1周或更长时间之前记录的日志文件的内容。但我需要过去7天的日志内容。是否有任何可能的解决方案来完成上述任务?

有一个简单的解决方案。这不完全是你所要求的,但也许对你来说很有价值

启动时,请执行以下操作:

  • 检查是否存在
    project.log
    并且大于(例如)2MB
  • 如果没有,只需使用
    project.log
  • 如果是:1)删除
    project.old.log
    (如果存在)。2) 将
    project.log
    重命名为
    project.old.log
    3)将log重命名为
    project.log
    (如果使用“a+”打开,将创建该日志)

谢谢。但是我想在特定的时间段内(从开始到一周前)清除日志。然后你必须清除它。解析日志。找到时间范围内的第一个日志行。将以下所有日志行写入新文件。删除旧文件。重命名新文件。没有捷径,我已经检查了所有的可能性。别无选择。谢谢你的回答。实现了这个逻辑。