내 iPhone 응용 프로그램에서 두 개의 로그 파일을 만들고 싶습니다. freopen()을 사용하여 NSLog 출력을 파일로 리디렉션하면 모든 로그 문이 언급 된 하나의 파일로 이동합니다.
하지만 몇 가지 로그 문을 하나의 파일에 넣고 다른 문은 다른 파일에 넣기를 원합니다.
어떤 생각, 어떻게 할 수 있습니까?iPhone 응용 프로그램에서 다중 로그 파일 만들기
답변
가장 좋은 방법은 자신의 로거 클래스를 NSLog() 대신 사용하는 대체 드롭으로 작성하는 것입니다. 그렇게하면 런타임에 로그를 어떤 파일에 기록해야하는지 쉽게 판단 할 수 있습니다. 사용자 정의 클래스는 NLog()를 사용하여 동시에 콘솔에 쓸 수 있습니다. freopen()
은 단순히 모든 로그 출력을 리디렉션하기 때문에 이것은 최적의 접근 방법처럼 보입니다. 나무꾼 프레임 워크와
시작 : https://github.com/robbiehanson/CocoaLumberjack
내가 다른 파일에 일부 동안 하나 개의 파일에 일부 로그 문을 넣을은
이를 달성하기 위해 몇 가지 방법이 있습니다. 2 파일 로거를 추가 : 여기에 하나의 예입니다
fileLoggerA = [[DDFileLogger alloc] init];
fileLoggerB = [[DDFileLogger alloc] init];
[DDLog addLogger:fileLoggerA];
[DDLog addLogger:fileLoggerB];
그래서이 시점에서, 모든 로그 문은 모두 fileLogger1 & fileLogger2로 이동 얻을 것이다. 다음으로 우리는 각각의 fileLogger에 "필터"를 추가하여 그들에게 지시되지 않은 로그 명령문을 무시할 것이다.
우리는 2 개의 다른 로깅 매크로를 작성하여이 작업을 수행 할 수 있습니다 : ALOG()를 & 블로그()
fileLoggerA 만 (ALOG에서 문을 로그 기록합니다). fileLoggerB는 BLog()의 로그 명령문 만 작성합니다.
이것을 설정하려면 "로깅 컨텍스트"를 이용할 수 있습니다. 당신은 같은 간단한 할 수있는 :이보다 더 고급 얻을 수 있습니다 분명
#define ALog(frmt, ...) SYNC_LOG_OBJC_MACRO(0, 0, 1, frmt, ##__VA_ARGS__)
#define BLog(frmt, ...) SYNC_LOG_OBJC_MACRO(0, 0, 2, frmt, ##__VA_ARGS__)
을하지만 (예를 들어, 로그 수준 등에 대한 지원을 추가)주의 할 점은 ALOG 1의 "환경"을 가지고 있으며, 어떻게 BLOG의 "컨텍스트"는 2입니다.
이제 "사용자 정의 포매터/필터"를 만들어야합니다. 물론, 파일 로거에 사용자 정의 포맷터/필터를 추가,
- (NSString *)formatLogMessage:(DDLogMessage *)logMessage
{
if (logMessage->logContext == theContextIShouldLog)
return logMessage->logMsg;
else
return nil;
}
: 그리고 다음은 그 예이다
이 주제에자세한 정보는 나무꾼의 프로젝트 페이지를 통해 확인할 수 있습니다
[fileLoggerA setLogFormatter:[MyContextFilter filterWith:1]];
[fileLoggerB setLogFormatter:[MyContextFilter filterWith:2]];
:
https://github.com/robbiehanson/CocoaLumberjack/wiki/GettingStarted https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomFormatters https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomContext https://github.com/robbiehanson/CocoaLumberjack/wiki/CustomLogLevels
지금 이것은 좋은 요리법, 고마워 Robbie :) –
나는 이것을 시도하고 두 파일 로거가 같은 파일에 그들의 출력을 지시하고있는 것 같습니다. 이것은 장치와 시뮬레이터 모두에 있습니다. – thegrinner
저에게 감사드립니다. –
- 1. iPhone 응용 프로그램에서 XML 파일 만들기
- 2. iPhone 응용 프로그램에서 새보기 만들기
- 3. Apache : 다중 로그 파일?
- 4. .NET 응용 프로그램에서 Confluence 로그 파일 읽기
- 5. iPhone/iPad 응용 프로그램에서 다중 경고보기 처리
- 6. 암호화 된 로그 파일 만들기
- 7. Django 응용 프로그램에서 Windows 실행 파일 만들기
- 8. iPhone 응용 프로그램에서 파일 읽기 및 쓰기
- 9. 설정 응용 프로그램에서 응용 프로그램 설정 만들기
- 10. iPhone 응용 프로그램에서 Geolocalisation
- 11. Linq to XML을 사용하여 로그 파일 만들기
- 12. 웹 응용 프로그램에서 다중 로그인 피하기
- 13. iPhone 응용 프로그램 충돌 로그
- 14. Log4Net을 사용하여 ReadOnly 로그 파일 만들기
- 15. 런타임에 log4j 로그 파일 이름 만들기
- 16. iPhone 응용 프로그램에서 Facebook 프로필 및 Wall과 같은보기 만들기
- 17. 다중 스레드 C# 응용 프로그램에서 LoaderLock이 발견되었습니다.
- 18. C# 응용 프로그램에서 데이터베이스 만들기
- 19. Java 응용 프로그램에서 트윗 만들기
- 20. iPhone 응용 프로그램에서 tabbar를 "재설정"하는 방법
- 21. iPhone 응용 프로그램에서 Facebook 채팅을 통합하는 방법
- 22. iPhone 파일 시스템에서 .psd 파일 만들기 및 편집
- 23. log4j를 사용하여 다른 로그 파일 만들기
- 24. log4j로 다른 내용의 여러 로그 파일 만들기
- 25. 로그 파일 모니터
- 26. iPhone 응용 프로그램에서 다음 형식으로 CSV 저장
- 27. 별도의 뷰어 응용 프로그램에서 ELMAH의 로그
- 28. 아이폰 로그 아웃 응용 프로그램에서 문제가
- 29. 안드로이드 응용 프로그램에서 로그 아웃하는 방법
- 30. iframe 응용 프로그램에서 Facebook 로그 아웃 감지
그것이 제가 생각한 것입니다. 그러나 저는 그것을 위해 할 수있는 프레임 워크를 찾고 있었고 커스텀 로거를 작성할 시간을 절약 할 수 있습니다. 제안에 대한 고맙습니다. – Anshul