123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- //
- // WebServerIPhoneAppDelegate.m
- // WebServerIPhone
- //
- // CocoaLumberjack Demos
- //
- #import "WebServerIPhoneAppDelegate.h"
- #import "WebServerIPhoneViewController.h"
- #import <CocoaLumberjack/CocoaLumberjack.h>
- #import "HTTPServer.h"
- #import "MyHTTPConnection.h"
- // Log levels: off, error, warn, info, verbose
- static const DDLogLevel ddLogLevel = DDLogLevelVerbose;
- @implementation WebServerIPhoneAppDelegate
- @synthesize fileLogger;
- @synthesize window;
- @synthesize viewController;
- - (void)setupWebServer
- {
- // Create server using our custom MyHTTPServer class
- httpServer = [[HTTPServer alloc] init];
-
- // Configure it to use our connection class
- [httpServer setConnectionClass:[MyHTTPConnection class]];
-
- // Set the bonjour type of the http server.
- // This allows the server to broadcast itself via bonjour.
- // You can automatically discover the service in Safari's bonjour bookmarks section.
- [httpServer setType:@"_http._tcp."];
-
- // Normally there is no need to run our server on any specific port.
- // Technologies like Bonjour allow clients to dynamically discover the server's port at runtime.
- // However, for testing purposes, it may be much easier if the port doesn't change on every build-and-go.
- [httpServer setPort:12345];
-
- // Serve files from our embedded Web folder
- NSString *webPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Web"];
- [httpServer setDocumentRoot:webPath];
-
- // Start the server (and check for problems)
-
- NSError *error = nil;
- if (![httpServer start:&error])
- {
- DDLogError(@"Error starting HTTP Server: %@", error);
- }
- }
- - (void)applicationDidFinishLaunching:(UIApplication *)application
- {
- // Direct log messages to the console.
- // The log messages will look exactly like a normal NSLog statement.
- //
- // This is something we may not want to do in a shipping version of the application.
-
- // [DDLog addLogger:[DDASLLogger sharedInstance]];
- [DDLog addLogger:[DDTTYLogger sharedInstance]];
-
- // We also want to direct our log messages to a file.
- // So we're going to setup file logging.
- //
- // We start by creating a file logger.
-
- fileLogger = [[DDFileLogger alloc] init];
-
- // Configure some sensible defaults for an iPhone application.
- //
- // Roll the file when it gets to be 512 KB or 24 Hours old (whichever comes first).
- //
- // Also, only keep up to 4 archived log files around at any given time.
- // We don't want to take up too much disk space.
-
- fileLogger.maximumFileSize = 1024 * 512; // 512 KB
- fileLogger.rollingFrequency = 60 * 60 * 24; // 24 Hours
-
- fileLogger.logFileManager.maximumNumberOfLogFiles = 4;
-
- // Add our file logger to the logging system.
-
- [DDLog addLogger:fileLogger];
-
- // Now setup our web server.
- //
- // This will allow us to connect to the device from our web browser.
- // We can then view log files, or view logging in real time as the application runs.
-
- [self setupWebServer];
-
- // This application, by itself, doesn't actually do anthing.
- // It is just a proof of concept or demonstration.
- // But we want to be able to see the application logging something.
- // So we setup a timer to spit out a silly log message.
-
- [NSTimer scheduledTimerWithTimeInterval:1.0
- target:self
- selector:@selector(writeLogMessages:)
- userInfo:nil
- repeats:YES];
-
- [window setRootViewController:viewController];
- [window makeKeyAndVisible];
- }
- - (void)writeLogMessages:(NSTimer *)aTimer
- {
- // Log a message in verbose mode.
- //
- // Want to disable this log message?
- // Try setting the log level (at the top of this file) to DDLogLevelWarning.
- // After doing this you can leave the log statement below.
- // It will automatically be compiled out (when compiling in release mode where compiler optimizations are enabled).
-
- DDLogVerbose(@"I like cheese");
- }
- @end
|