CocoaPods trunk is moving to be read-only. Read more on the blog, there are 13 months to go.
| TestsTested | ✗ |
| LangLanguage | Obj-CObjective C |
| License | MIT |
| ReleasedLast Release | Dec 2014 |
Maintained by Yan Rabovik.
Usual logging with NSLog is quite boring because you need to convert all structures to NSString and use a correct specifier for each argument:
NSLog(@"Frame = %@", NSStringFromCGRect(view.frame));
NSLog(@"π = %f", 3.14f);ATLog macro uses one universal specifier %@ for all types and automatically converts all arguments to NSString objects:
ATLog(@"Frame = %@", view.frame); // No need for NSStringFromCGRect
ATLog(@"π = %@", 3.14f); // One '%@' specifier for all argument typesATConcatLog macro uses arguments concatenation instead of specifiers replacement (like in dynamically-typed languages):
ATConcatLog(@"π=", 3.14f, @"; Σ=", 13); // π=3.140000; Σ=13For the full list of automatically-converted types see tests. Here are some examples:
ATConcatLog(@"\n RootViewController: ", self.window.rootViewController,
@"\n Frame: ", self.window.frame,
@"\n Center: ", self.window.center,
@"\n Transform: ", self.window.transform,
@"\n Alignment rect insects: ", self.window.alignmentRectInsets,
@"\n Is keyWindow: ", self.window.keyWindow); RootViewController: (nil)
Frame: {{0, 0}, {320, 568}}
Center: {160, 284}
Transform: [1, 0, 0, 1, 0, 0]
Alignment rect insects: {0, 0, 0, 0}
Is keyWindow: YES
ATLog(@"%@", self.window.clearsContextBeforeDrawing); // YES
ATLog(@"%@", (bool)true); // true
ATLog(@"%@", NULL); // (NULL)Another macro for easy logging. Each argument is logged in a separate line:
ATLogEach(@"Window properties:",
self.window.frame,
self.window.center,
self.window.keyWindow);0) Window properties:
1) {{0, 0}, {320, 568}}
2) {160, 284}
3) YES
By default ATLog redirects its output to ATPrettyLog macro which produces nicer and more informative output than NSLog:
NSLog(@"NSLog produces not very useful output.");
ATPrettyLog(@"ATPrettyLog prints method name and line number.");
ATLog(@"ATLog uses ATPrettyLog by default.")2013-08-22 23:14:16.258 Example[66227:c07] NSLog produces not very useful output.
23:14:16.261 -[AppDelegate logExample] [Line 20] ATPrettyLog prints method name and line number.
23:14:16.261 -[AppDelegate logExample] [Line 21] ATLog uses ATPrettyLog by default.
You can change this default behavior by defining a ATLog_OUTPUT macro before importing ATLog.h file. Here are some examples for using NSLog or CocoaLumberjack instead of ATPrettyLog:
#define ATLog_OUTPUT(fmt, args...) NSLog(fmt,args)
#import "ATLog.h"
ATLog(@"I use NSLog now.");#define ATLog_OUTPUT(fmt, args...) DDLogVerbose(fmt,args)
#import "ATLog.h"
ATLog(@"I use CocoaLumberjack now.");Yan Rabovik (@rabovik on twitter)
MIT License.