IOS应用中使用SimpleLogger日志分类是本文要介绍的内容,主要实现IOS中的日志分类一个实例,那么来看详细内容。
在坛子里看到一篇IOS中日志管理的内容,与友们来分享一下。之前做java的时候一直用Log4j做日志的分类,但是现在做iphone有一段时间了,一直用NSLog做日志,但是我们在开发过程中需要一些强大的日志功能,例如对日志level的控制,对行号和文件名的打印等等。有一个开源的Log4Cocoa。
学习Object-C 和 iPhone也有将近两个月了,几乎任何讲Object-C的书第一章就会用到NSLog这个函数,这个函数可以向Console输出一些信息,方便我们跟踪程序的运行过程。可是我在做一些iPhone的开发的时候,却需要一些稍微强大的日志功能,譬如文件名,行号,对一些日志Level的控制。我在Google上找了一下,有个Log4Cocoa的,好像是想做成Log4j的功能。可是我平时的需求不需要那么强大,而且我很不喜欢杀鸡用牛刀,于是我自己写了一个简单的日志库SimpleLogger。
其实这个不能算库,说白了就是SimpleLogger.h和SimpleLogger.m两个文件,够简单吧。我定义了一些常用的宏,譬如DEBUG, ENTER, RETURN,大家可以看源代码,也可以直接看MyLogger.m的示例,就知道怎么用了。这个日志库可以支持iPhone和MacOSX的开发,不过它不是线程安全的(iPhone没有这个问题)。
[使用方法]
先看看下面的代码:
- #import <Foundation/Foundation.h>
- #import "SimpleLogger.h"
- int testLogger()
- {
- ENTER(@"testLogger()");
- int rst = 10;
- RETURN(-rst, @"%d", -rst);
- }
- int main (int argc, const char * argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [SimpleLogger getLogger];
- //insert code here
- int i = 10;
- INFO(@"i is %d", i);
- i = -100;
- INFO(@"i is %d", i);
- testLogger();
- [pool drain];
- [[SimpleLogger getLogger]release];
- return 0;
- }
- #import <Foundation/Foundation.h>
- #import "SimpleLogger.h"
- int testLogger()
- {
- ENTER(@"testLogger()");
- int rst = 10;
- RETURN(-rst, @"%d", -rst);
- }
- int main (int argc, const char * argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- [SimpleLogger getLogger];
- //insert code here
- int i = 10;
- INFO(@"i is %d", i);
- i = -100;
- INFO(@"i is %d", i);
- testLogger();
- [pool drain];
- [[SimpleLogger getLogger]release];
- return 0;
- }
使用方法也非常简单
(1)把SimpleLogger.h和SimpleLogger.m加到你的项目中
(2)调用[[SimpleLogger getLogger]setLogLevelSetting:SOME_LEGEL];(可选的,默认是SLLE_MAJOR)
(3)最后调用[[SimpleLogger getLogger]release]
(4)常用方法:
- ENTER(@"method name");
- INFO(@"The count of array is %d", [array count]);
- DEBUG(@"The person's name is %@", person.name);
- ERROR(@"Impossible get into this branch");
- RETURN(rst, @"%d", rst); //rst就是返回值
- LOG(SLL_DETAILED, @"This log is very detailed with value %d", value);
- [[SimpleLogger getLogger]setLogLevelSetting:SLLS_MINOR]; //设置日志级别
下载类库:http://wangjun.easymorse.com/wp-content/tools/SimpleLogger.zip
MyLogger.tar:http://dl.iteye.com/topics/download/2898cb63-c4c6-3042-be73-2e173cac2a64
小结:iOS应用中使用SimpleLogger日志分类的内容介绍完了,希望本文对你有所帮助!