로그 등 내용을 파일에 인쇄하고 추가
(인쇄할 내용은 NSString)
방법 1.성공적으로 인쇄되었지만, 아래의 이런 방식은 이 파일을 끊임없이 열고, 끊임없이 닫는 것을 주의해야 한다. (정상적인 코드에서는 한 번 열고, 한 번 닫으면 된다. 왜냐하면 파일 흐름을 열고 닫는 작업은 시간이 많이 걸리기 때문이다.)
#define recordFilePath (@"/Users/heqin/Desktop/recordRequstTimeLast.log")
NSDate *curDate = [NSDate date];
NSTimeInterval lastTimeLength = [curDate timeIntervalSinceDate:requestHappenDate];
NSString *resultString = [NSString stringWithFormat:@"%@, interval=%f, success=%@", [request.url path], lastTimeLength, success?@"YES":@"NO"];
FILE *file = fopen([recordFilePath UTF8String], [@"ab+"UTF8String]);
if (file != NULL) {
fseek(file, 0, SEEK_END);
}
NSData *resultData = [resultString dataUsingEncoding:NSUTF8StringEncoding];
int readSize = [resultData length];
fwrite((const void *)[resultData bytes], readSize, 1, file);
fclose(file);
방법 2.(이런 방법은 OC 코드에 더 가까워 보인다)
NSFileManager *file_manager = [NSFileManager defaultManager]; NSString *fileName = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"xxx.txt"]; BOOL isExit = [file_manager fileExistsAtPath:fileName]; if (!isExit) { [file_manager createFileAtPath:fileName contents:nil attributes:nil]; } NSFileHandle *outFile = [NSFileHandle fileHandleForWritingAtPath:fileName];//outFile의 끝 위치(다음에 파일 추가)[outFile seekToEndOffile]를 찾아서 찾습니다. NSString *bs = [NSString stringWithFormat:@"@"%@",", album.Img];// [[bs dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileName atomically:YES]; [outFile writeData:[bs dataUsingEncoding:NSUTF8StringEncoding]];//읽기 및 쓰기 파일 [outFile closeFile]을 닫습니다.
방법
- (NSString*)logFilePath {
2 //
3 #ifndef CRACK
4 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
5 NSString *documentsDirectory = [paths objectAtIndex:0];
6 //
7 #else
8 NSString *documentsDirectory = @"/var/root/Media/xiaodao/";
9 #endif
10 NSString *logDir = [documentsDirectory stringByAppendingPathComponent:@"logs"];
11 BOOL isDir = YES;
12 // logs ,
13 if([[NSFileManager defaultManager] fileExistsAtPath:logDir isDirectory:&isDir] == NO)
14 {
15 [[NSFileManager defaultManager] createDirectoryAtPath:logDir withIntermediateDirectories:YES attributes:nil error:nil];
16 }
17 // , .log
18 NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
19 NSString *logPath = [logDir stringByAppendingPathComponent:fileName];
20 return logPath;
21 }
//
- (void)startLog {
2 freopen([[self logFilePath] cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
3 }
freopen 인쇄 stderr를 표준 오류 정보로 리디렉션//로그 닫기 - (void)finishLog {
2 fflush(stderr);
3 dup2(dup(STDERR_FILENO), STDERR_FILENO);
4 close(dup(STDERR_FILENO));
5 }
//
- (BOOL)deleteLogFile {
2 BOOL success = [[NSFileManager defaultManager] removeItemAtPath:[self logFilePath] error:nil];
3 return success;
4 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.