#Timberjack
Automatic Swift network activity logger for iOS or OSX.
Timberjack is a simple, unintrusive network activity logger. Log every request your app makes, or limit to only those using a certain URLSession if you'd prefer. It also works with Alamofire, if that's your thing.
- Enable logging across your app with just 1 line of code
- Verbose and Light debugging modes
- Works with
URLSession,URLConnection,Alamofireand pretty much any networking framework - Pretty printed
JSONresponses - Useful for debugging and development, but probably best not to ship your app with verbose logging.
##Installation
Timberjack is installed as an embedded framework, and as such requires at least iOS8. If you require iOS7 compatibility, simply drag the Timberjack.swift file into your own project.
###CocoaPods
Add the following to your Podfile
platform :ios, '8.0'
use_frameworks!
pod 'Timberjack'Then install with pod install
###Carthage
Add the following to your Cartfile
github "andysmart/Timberjack" >= 0.0.3##Usage
Nice and easy, just register when your app loads, and Timberjack will monitor and log any requests you make via URLSession or URLConnection.
import UIKit
import Timberjack
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Timberjack.register() //Register Timberjack to log all requests
return true
}
}###Using with Alamofire
Due to the way Alamofire uses NSURLSession, you'll need to do a little more than the standard installation to monitor all requests. The simplest way to do this is to create a subclass of Manager to handle your requests, then just use this in place of Alamofire.request().
import Alamofire
import Timberjack
class HTTPManager: Alamofire.SessionManager {
static let shared: HTTPManager = {
let configuration = Timberjack.defaultSessionConfiguration()
let manager = HTTPManager(configuration: configuration)
return manager
}()
}###Configuration
Timberjack has two modes: Verbose and Light. The default style is verbose. To change this, just set it appropriately.
Timberjack.logStyle = .verbose //Either .Verbose, or .Light##License
MIT, see LICENSE for details.
##Bugs or Issues
Open an issue here, or ping me a message on Twitter. Even better, fork this repo and open a pull-request!
Unfortunately, due to a limitation in URLProtocol, Timberjack is unable to log the HTTP body of a request, see This radar for more details
##Credits
Built by @andyjsmart
