blob: ee97b4e7e319178aebc3e181c8c1cbae2214076e [file] [log] [blame]
#import "AppDelegate.h"
#import <CocoaLumberjack/CocoaLumberjack.h>
#import <CocoaLumberjack/DDDispatchQueueLogFormatter.h>
// Log levels: 0-off, 1-error, 2-warn, 3-info, 4-verbose
static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
@implementation AppDelegate
{
dispatch_queue_t downloadingQueue;
dispatch_queue_t parsingQueue;
dispatch_queue_t processingQueue;
}
@synthesize window = _window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
if (NO)
{
// See what log statements look like *BEFORE* using DispatchQueueLogFormatter :(
}
else
{
// See what log statements look like *AFTER* using DispatchQueueLogFormatter :)
DDDispatchQueueLogFormatter *formatter = [[DDDispatchQueueLogFormatter alloc] init];
formatter.minQueueLength = 4;
formatter.maxQueueLength = 0;
[formatter setReplacementString:@"downloading" forQueueLabel:@"downloadingQueue"];
[formatter setReplacementString:@"parsing" forQueueLabel:@"parsingQueue"];
[formatter setReplacementString:@"processing" forQueueLabel:@"processingQueue"];
[[DDTTYLogger sharedInstance] setLogFormatter:formatter];
}
[DDLog addLogger:[DDTTYLogger sharedInstance]];
DDLogVerbose(@"Starting queues");
downloadingQueue = dispatch_queue_create("downloadingQueue", NULL);
parsingQueue = dispatch_queue_create("parsingQueue", NULL);
processingQueue = dispatch_queue_create("processingQueue", NULL);
dispatch_block_t blockA = ^{
DDLogVerbose(@"Some log statement");
};
dispatch_block_t blockB = ^{
DDLogVerbose(@"Some log statement");
};
dispatch_block_t blockC = ^{
DDLogVerbose(@"Some log statement");
};
int i, count = 5;
for (i = 0; i < count; i++)
{
dispatch_async(downloadingQueue, blockA);
dispatch_async(parsingQueue, blockB);
dispatch_async(processingQueue, blockC);
}
[NSThread detachNewThreadSelector:@selector(backgroundThread:) toTarget:self withObject:nil];
}
- (void)backgroundThread:(id)ignore
{
@autoreleasepool {
[[NSThread currentThread] setName:@"MyBgThread"];
int i;
for (i = 0; i < 5; i++)
{
DDLogVerbose(@"Some log statement");
}
}
}
@end