学习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;
}
使用方法也非常简单
[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]; //设置日志级别
非常简单的,如果大家有什么问题,欢迎给我发邮件。ankyhe(gmail)。
分享到:
相关推荐
Windows/MacOS 上 VSCode 配置 C++:LLVM(Clang + Clangd + LLDB)
【关注微信公众号:refs-cn,可免费下载】 Refs.cn 原型设计元件库, 基于 Apple iOS/macOS Human Interface Guidelines 创建,适用于 iPhone、iPad 和 macOS 桌面应用的原型设计。
基于Qt开发的GameBox主机游戏模拟器可在windows/macos/linux多平台使用,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心下载使用~ 基于Qt开发的GameBox主机游戏模拟器可在windows/macos/...
Logger是一个简单的跨平台Go日志库,适用于Windows,Linux和macOS,它可以记录到Windows事件日志,Linux / macOS syslog和io.Writer。
1.10.1版synergy(linux/win/Macos),无需破解,直接安装 非常好使的多机鼠键共享软件,适用于linux/win/Macos 多台电脑间系统完美匹配,解放双手,清洁桌面。 目前博主正在多机使用,非常便捷 注意:最好是多台电脑...
2048小游戏,跨平台,支持Android/AndroidTV/iOS/MacOS/Windows 1. Compose multiplatform 2. Kotlin multiplatform 目前只是简单实现,包括方块移动的动画
一款高颜值的第三方网易云播放器,支持 Windows / macOS / Linux。
用于Swift的声明式,易于使用和安全的依赖注入框架(iOS / macOS / Linux).zip,swift依赖注入框架(ios/macos/linux)
是一款适用于分类存储管理任意格式文档资料的小型个人数据库软件, 有助于个人用户在( Linux/macOS/Windows )桌面电脑系统上实施... 借助软件提供的各项功能,创建和维护一个专属于自己的个人知识库将变的相对容易。
EggShell, iOS/macOS/Linux 远程管理工具 蛋壳蛋壳是一个利用 python 编写的邮政开发监视工具。 它给你一个 命令行 会话,在你和目标机器之间有额外的功能。 ,提供了上下载文件。选项卡完成。照片。位置跟踪。shell...
YUVviewer一款用于开发人员查看预览各种原始图像格式的小工具,其基于Qt和opencv的框架,支持windows/linux/macos,界面简单清晰,操作便携。主界面选择参数。点击打开文件或文件夹将进行图像数据解析并显示图像。...
Linux/macOS下Qt 6.3.2 qt-everywhere-src-6.3.2.tar.xz
cppman, linux/macOS的C 98/11/14 手册页 cppmanLinux 98/11/14 手册页,具有来自 cplusplus.com 和 cppreference.com的源代码。 特性支持两个后端( 用 cppman -s switch ):cplu
后缀为.tar.gz的适合Linux和MacOS用户使用,后缀为.zip的适合Windows用户使用。
版本v 4.5.6 msi === win 64 / dmp == macos 解决官网下载慢的问题。
python3.11.0版本下载,上传时间2022.11.09,内包含三个平台所有安装包
python3.10.8版本下载,上传时间2022.11.12,内包含三个平台所有安装包
Atom-macos-bootstrap.zip,启动全新的Sierra MacBook ProMacOS引导,atom是一个用web技术构建的开源文本编辑器。
老司机漫画源码