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

这篇博客介绍了如何在iOS平台上实现将系统运行的日志信息记录并保存到指定的文件目录。通过创建或追加到文件中,可以方便地管理和查看应用程序的日志数据。只需调用write2Log方法,传入日志内容和文件名即可完成记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照名称创建文件,如果文件存在,继续写在文件中,如果文件不存在,创建新的文件,实现记录自己需要记录的日志信息。
使用方法,在需要记录的地方,直接使用 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];


    }



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值