重定义NSLog
来源:互联网 发布:python是面向对象吗 编辑:程序博客网 时间:2024/05/17 09:15
.pch中定义
#ifdef TEST_MODE#define NSLog(...) iydLog(__FILE__, __FUNCTION__, __LINE__, __VA_ARGS__)#endif
调用和NSLog完全一样
实现:
//// iydLogWithFile.m// ebook//// Created by xiejinniu on 12-7-3.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#import "iydLogWithFile.h"#include <sys/stat.h>#import "systemhelper.h"#import "ebookAppDelegate.h"#define KLOG_FILE_MAX_SIZE (5*1024*1024)static void checkLogFileSizeAndDelete(){ struct stat fileStatus = {0}; const char* logPath = [[SystemHelper GetIYDFileLogPath_str] cStringUsingEncoding:NSUTF8StringEncoding]; if(stat(logPath, &fileStatus) == -1) { return; } if (fileStatus.st_size > KLOG_FILE_MAX_SIZE) { [[NSFileManager defaultManager] removeItemAtPath:[SystemHelper GetIYDFileLogPath_str] error:nil]; }}void iydLog(const char* file, const char* function, int line, NSString* format, ...){[[ebookAppDelegate getInstance].logLock lock];{ checkLogFileSizeAndDelete(); va_list args; va_start(args, format); NSMutableString* strContent = [[NSMutableString alloc] initWithFormat:format arguments:args]; [strContent appendFormat:@"\r\n[file:%s], [function:%s], [line:%d]\r\n\r\n", file, function, line]; NSLogv(format, args); const char* cLog = [strContent cStringUsingEncoding:NSUTF8StringEncoding]; const char* logPath = [[SystemHelper GetIYDFileLogPath_str] cStringUsingEncoding:NSUTF8StringEncoding]; FILE* filehandle = fopen(logPath, "ab+"); if (filehandle != NULL) { int realsize = fwrite(cLog, 1, strlen(cLog), filehandle); if (realsize != strlen(cLog)) { NSLogv(@"write log file error!", nil); } } fclose(filehandle); [strContent release]; va_end(args); }[[ebookAppDelegate getInstance].logLock unlock];}
0 0
- 重定义NSLog
- 重定义NSLog,节省系统开支
- iOS项目中重定义NSLog方法
- 重定向NSLog
- NSLog的重定向
- NSLog重定向
- 宏定义重写NSLog
- 宏定义NSLog
- NSLog宏定义
- NSLog的定义及格式
- nslog 宏定义输出 IOS
- NSLog效率低下的原因以及NSLog宏定义
- iOS中NSlog重定向到文件
- 重定向 NSLog 输出到文件
- ios NSLog内容重定向到本地
- 重定义
- 重定义
- 利用宏定义控制nslog 的输入输出
- IOS访问限制密码忘记解决方案
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
- java连接linux中mysql出现:Access denied for user 'root'@'192.168.91.1' (using password: YES)
- 【LeetCode】Path Sum
- ****有关onActivityResult提前调用的问题
- 重定义NSLog
- struts2.1.8启动 FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION
- 学习鸟哥的Linux私房菜笔记(10)——bash2
- onCreateOptionsMenu的作用
- js时间戳转为日期格式
- 解决sqlserver2008在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQ
- 正则表达式匹配方式
- 架构设计的UML图形思考
- 最完全php jq jquery getJSON跨域提交数据