5 // Created by Mike Mayo on 10/11/10.
6 // The OpenStack project is provided under the Apache 2.0 license.
10 #import "OpenStackRequest.h"
11 #import "APILogEntry.h"
14 #define kMaxLogEntries 1000
16 static NSArray *loggerEntries = nil;
18 @implementation APILogger
22 loggerEntries = [[NSArray alloc] init];
24 loggerEntries = [Archiver retrieve:@"loggerEntries"];
25 if (loggerEntries == nil) {
26 loggerEntries = [[NSArray alloc] init];
27 [Archiver persist:loggerEntries key:@"loggerEntries"];
32 + (NSArray *)loggerEntries {
33 if (loggerEntries == nil) {
34 loggerEntries = [Archiver retrieve:@"loggerEntries"];
39 + (void)log:(OpenStackRequest *)request {
41 return; // disabling request logging for performance
43 APILogEntry *entry = [[APILogEntry alloc] initWithRequest:request];
45 NSMutableArray *entries = [NSMutableArray arrayWithArray:[APILogger loggerEntries]];
46 [entries insertObject:entry atIndex:0];
49 while ([entries count] > kMaxLogEntries) {
50 [entries removeLastObject];
53 // not checking for success since it's just logging
54 [Archiver persist:[NSArray arrayWithArray:entries] key:@"loggerEntries"];
59 + (BOOL)eraseAllLogs {
61 return [Archiver delete:@"loggerEntries"];