ATLog 0.0.2

ATLog 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新版本2014年12月

Yan Rabovik维护。



ATLog 0.0.2

  • Yan Rabovik

@ ATLog

使用NSLog进行常规日志记录非常枯燥,因为它需要将所有结构转换为NSString,并为每个参数使用正确的指定符

NSLog(@"Frame = %@", NSStringFromCGRect(view.frame));
NSLog(@"π = %f", 3.14f);

ATLog宏对所有类型使用一个通用的指定符%@,并自动将所有参数转换为NSString对象

ATLog(@"Frame = %@", view.frame); // No need for NSStringFromCGRect 
ATLog(@"π = %@", 3.14f); // One '%@' specifier for all argument types

ATConcatLog

ATConcatLog宏使用参数拼接而不是使用指定符替换(如在动态类型语言中)

ATConcatLog(@"π=", 3.14f, @"; Σ=", 13); // π=3.140000; Σ=13

支持的类型

自动转换的类型的完整列表请查看测试。以下是一些示例

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)

ATLogEach

另一个易于使用的宏。每个参数都将在单独的一行中记录

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

ATPrettyLog

默认情况下,ATLog将输出重定向到宏ATPrettyLog,它产出的输出比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.

重定向ATLog输出

您可以通过在导入ATLog.h文件之前定义一个ATLog_OUTPUT宏来更改此默认行为。以下是为使用NSLogCocoaLumberjack而不是ATPrettyLog的示例

重定向到NSLog
#define ATLog_OUTPUT(fmt, args...) NSLog(fmt,args)
#import "ATLog.h"

ATLog(@"I use NSLog now.");
重定向到CocoaLumberjack
#define ATLog_OUTPUT(fmt, args...) DDLogVerbose(fmt,args)
#import "ATLog.h"

ATLog(@"I use CocoaLumberjack now.");

要求

  • iOS 5.0+
  • ARC

作者

Yan Rabovik (@rabovik 在twitter)

许可证

MIT许可证。