2012-12-18 3 views
0

해당 앱의 로그 파일을 유지 관리해야하는 애플리케이션이 있습니다. NSLog를 사용하여 로깅하고 있습니다. 그러나 이것은 또한 시스템 로그에 기록 할 것입니다. 이것을 제거하는 방법.NSLog가 파일로 리디렉션하면 /var/log/system.log에도 기록됩니다.

접근 :

NSString *appending_filename=[log_dir_path stringByAppendingString:@"/MyApp.log"]; 

const char *log_p = [appending_filename cStringUsingEncoding:NSUTF8StringEncoding]; 

newStderr= freopen(log_p, "a", stderr); 

NSLog(@" This should only goes to MyApp.log"); 
+0

NSLog를 사용하는 이유는 여기에 사용자 정의 방법을 사용하십시오. –

+0

NSLog를 사용하면 PID, 시간, 응용 프로그램 이름이 자동으로 기록됩니다. 그리고 파일 기술자를 반복해서 열거 나 닫을 필요가 없습니다. – user12345

답변

0

검색 및 구글과 동일한 작업을 수행. 당신의 프로그램에 Quietlog() 복사 필요한 경우이를 수정하고 프로그램의 다음

#define NSLog() Quietlog() 

. 따라서 출력을 원하는대로 리디렉션 (형식 지정) 할 수 있습니다.

0

나는 하루 동안 다른 일을 시도한 후에도 이것을위한 해결책을 얻지 못했습니다. 그래서 사용자 정의 함수 자체를 계속 진행합니다.