您的位置:首页 > 移动开发 > IOS开发

iOS 记录系统运行日志到指定文件目录

2016-01-08 16:30 525 查看
按照名称创建文件,如果文件存在,继续写在文件中,如果文件不存在,创建新的文件,实现记录自己需要记录的日志信息。

使用方法,在需要记录的地方,直接使用 write2Log方法即可,俩个参数(NSString )logmessg为消息内容,(NSString )logname为日志文件名称。

#import <Foundation/Foundation.h>
#import "Comm.h"

@interface WriteLog : NSObject
{
NSFileManager *fileMgr;}
-(void)write2Log :(NSString *)logmessg :(NSString *)logname;
@end


#import "WriteLog.h"

@implementation WriteLog

-(void)write2Log :(NSString *)logmessg :(NSString *)logname
{
fileMgr = [NSFileManager defaultManager];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];    // 设置格式为年-月-日 时:分:秒:毫秒

NSString *timeStr = [dateFormatter stringFromDate:[NSDate date]];

[dateFormatter setDateFormat:@"yyyy:MM:dd hh:mm:ss"];   // 设置格式为年-月-日 时:分:秒:毫秒

NSString *logtime = [dateFormatter stringFromDate:[NSDate date]];

NSArray *userPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePackageName = [userPaths objectAtIndex:0];

filePackageName = [NSString stringWithFormat:@"%@/%@%@",filePackageName,logPath,timeStr];
NSString* fileNamePackageRes=fileNamePackageRes = [[NSString alloc] initWithFormat:@"%@/%@.txt",filePackageName,logname];
NSString* strLogData = [[NSString alloc]initWithFormat:@"\n%@\n%@\n",logtime,logmessg];
if (![fileMgr fileExistsAtPath:filePackageName])
{
[fileMgr createDirectoryAtPath:filePackageName withIntermediateDirectories:YES attributes:nil error:nil];

}
else
{

NSFileHandle  *outFile;
NSData *buffer;

outFile = [NSFileHandle fileHandleForWritingAtPath:fileNamePackageRes];

if(outFile == nil)
{
[strLogData writeToFile:fileNamePackageRes atomically:NO encoding:NSUTF8StringEncoding error:nil];
return;
}

//找到并定位到outFile的末尾位置(在此后追加文件)
[outFile seekToEndOfFile];

//读取inFile并且将其内容写到outFile中

buffer = [strLogData dataUsingEncoding:NSUTF8StringEncoding];

[outFile writeData:buffer];

//关闭读写文件
[outFile closeFile];

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios nsstring