学习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)。
分享到:
相关推荐
【关注微信公众号:refs-cn,可免费下载】 Refs.cn 原型设计元件库, 基于 Apple iOS/macOS Human Interface Guidelines 创建,适用于 iPhone、iPad 和 macOS 桌面应用的原型设计。
基于Qt开发的GameBox主机游戏模拟器可在windows/macos/linux多平台使用,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心下载使用~ 基于Qt开发的GameBox主机游戏模拟器可在windows/macos/...
2048小游戏,跨平台,支持Android/AndroidTV/iOS/MacOS/Windows 1. Compose multiplatform 2. Kotlin multiplatform 目前只是简单实现,包括方块移动的动画
php 8.2.23 下载 , windows / linux / macos 平台 下载日期 : 2024-09-12
php 8.3.11 下载, windows / linux / macos 平台下载 下载日期: 2024-09-12
1.10.1版synergy(linux/win/Macos),无需破解,直接安装 非常好使的多机鼠键共享软件,适用于linux/win/Macos 多台电脑间系统完美匹配,解放双手,清洁桌面。 目前博主正在多机使用,非常便捷 注意:最好是多台电脑...
C++作为一个广泛应用的编程语言,其跨平台的特性使得开发适用于不同操作系统(如Windows、Linux、macOS等)的日志库显得尤为重要。本文将详细介绍一个经过改良,能在Windows环境下使用的C++跨平台日志库。 这个日志...
Go-Logger是一个专为Go语言设计的轻量级日志库,它具有高度的可移植性,能够在Windows、Linux以及macOS等不同操作系统上无缝运行。这个库为开发者提供了一种方便的方式来记录应用的日志信息,使得在调试、监控和问题...
是一款适用于分类存储管理任意格式文档资料的小型个人数据库软件, 有助于个人用户在( 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
版本v 4.5.6 msi === win 64 / dmp == macos 解决官网下载慢的问题。
- **Console.app**:在macOS中,可以查看系统日志和用户日志。 - **Event Viewer**:在Windows操作系统中,用于查看系统和应用程序事件。 - **Logstash**:开源数据处理管道,可以收集、解析和存储日志,便于分析...
本项目“iOS/iPhone/iPad/iPod源代码——按钮(Button)-MacOs Like Menu Animation”专注于模仿Mac OS的浮动工具栏(Dock)效果,通过点击或滑过按钮,使按钮呈现出变大并突起的动画效果。这个特性增强了用户体验,...
在macOS系统下,将iPhone备份到移动硬盘的过程可能对一些用户来说并不直观,因为苹果官方并未提供直接的设置选项。然而,通过一些手动操作和系统配置,这一目标是可以实现的。尤其对于那些经常需要备份iPhone数据,...
LibreCAD 是一个跨平台的 2D CAD 程序,使用 C++14 和 Qt 框架编写。它能读取 DXF 和 DWG 文件,并能写入 DXF、PDF 和 SVG 文件...macOS 安装包: LibreCAD-2.2.0.2.dmg Windows 安装包: LibreCAD-Installer-2.2.0.2.exe
在Windows和MacOS系统中,Premiere Pro CC提供了丰富的默认快捷键,以提高编辑速度和效率。本文将详细解析这些快捷键,帮助用户更熟练地操作这款专业级的视频编辑工具。 一、项目管理与导入导出 1. 创建新项目:...