2013-02-21 1 views
2

저는 TestFlight를 사용하고 있습니다.이 매크로는 NSLog를 대체하여 TestFlight 원격 로깅을 대체합니다.코드를 대체 할 매크로 정의

#define NSLog(__FORMAT__, ...) TFLog((@"%s [Line %d] " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 

난 그냥 TestFlight 웹 사이트에서이 붙여 복사하고 지금은 약간 다른 목적을 위해 내 자신을 만들고 싶습니다.

내가 입력 할 수 있도록하고 싶습니다

...

MyEventLog(@"Something happened."); 

... 그것이로 해석하기 위해 ...

[[MyEventLogManager sharedInstance] newLogWithText:@"Something happened"]; 

내가 얼마나 확실하지 않다 구문은 작동합니다.

답변

4
#define MyEventLog(message) [[MyEventLogManager sharedInstance] newLogWithText:message] 

당신은 그 방법의 가변 인자 버전을 제공하는 것이 유용 할 것이다, 그래서 당신은 그것을 형식의 텍스트 통과 할 수 그러나 :

- (void)newLogWithFormat:(NSString *)format, ... 
{ 
    va_list va; 
    va_start(va, format); 
    NSString *message = [[NSString alloc] initWithFormat:format arguments:va]; 
    va_end(va); 

    [self newLogWithText:message]; 

    // If not using ARC, then: 
    // [message release]; 
} 

사용 :

#define MyEventFormat(__FORMAT__, ...) [[MyEventLogManager sharedInstance] newLogWithFormat:__FORMAT__, ##__VA_ARGS__] 
+0

+1 니스 하나 .... –

+0

우수, 감사 전화를 볼 수 있습니다 : D – Fogmeister

+0

내가에 내 함수를 작성해야합니까 형식을 해석합니까? 아니면 전체 문자열 NSString 형식입니까? 다시 한 번 감사합니다 – Fogmeister

1

당신은 할 수 있습니다 LoggingEngine을 살펴 보겠습니다. 비슷한 것을 사용합니다. 여기

#define PBLog(s,...) [PBLog logFile:__FILE__ withLineNumber:__LINE__ andFormat:(s), ##__VA_ARGS__] 

당신은 내가 매우 많은 방법 [PBLog logfile:withLineNumber:andFormat:]

에게 https://github.com/nerdishbynature/PBLog

+0

우수, 정말 고마워. – Fogmeister