2013-10-02 6 views

답변

16

글쎄, 말했듯이, 내장 된 방법이 없습니다. 그래서, 구현 한 사용자 정의 포맷터 : Urk의가, 거기에 어떤 사소한 방법이 아니다, 그러나 당신이 당신의 자신의 포맷을 정의하는 경우가

0

클래스가 작동하면 로깅 코드를 좀 더 장황하게 만듭니다. 내 프로젝트에서 내가 지금처럼 CocoaLumberjack의 사용을 몇 가지 추가 매크로 추가를 선택했다 : 클라이언트 코드에서

// Prefix.pch file 
// ... 

#ifdef DEBUG 
#define DLogError(fmt, ...) DDLogError((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define DLogWarn(fmt, ...) DDLogWarn((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define DLogInfo(fmt, ...) DDLogInfo((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define DLogDebug(fmt, ...) DDLogDebug((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 
#define DLogVerbose(fmt, ...) DDLogVerbose((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) 
#else 
#define DLogError(fmt, ...) 
#define DLogWarn(fmt, ...) 
#define DLogInfo(fmt, ...) 
#define DLogDebug(fmt, ...) 
#define DLogVerbose(fmt, ...) 
#endif 

를, 당신은 다음 호출 할 수 있습니다은 https :

DLogWarn(@"This is a warning"); 
+0

서식 문서는 여기로 이동 : //github.com/CocoaLumberjack/CocoaLumberjack/blob/master/Documentation/CustomFormatters.md – Natalia

6

별도의 포맷이 동안 (doc 참조) 아주 간단 제안으로

@interface LineNumberLogFormatter : NSObject<DDLogFormatter> 

- (NSString *)formatLogMessage:(DDLogMessage *)logMessage; 

@end 

@implementation LineNumberLogFormatter 
- (NSString *)formatLogMessage:(DDLogMessage *)logMessage 
{ 
    NSString *path = [NSString stringWithCString:logMessage->file encoding:NSASCIIStringEncoding]; 
    NSString *fileName = [path lastPathComponent]; 
    return [NSString stringWithFormat:@"%@:%d %@", fileName, logMessage->lineNumber, logMessage->logMsg]; 
} 
@end 
+0

고맙습니다. 매우 도움이됩니다. – Natalia