로그 설정¶
로그 초기화 설정¶
FTLoggerConfig *loggerConfig = [[FTLoggerConfig alloc] init];
loggerConfig.enableCustomLog = YES;
loggerConfig.printCustomLogToConsole = YES;
loggerConfig.enableLinkRumData = YES;
loggerConfig.logLevelFilter = @[@(FTStatusError), @(FTStatusCritical)];
loggerConfig.discardType = FTDiscardOldest;
[[FTSDKAgent sharedInstance] startLoggerWithConfigOptions:loggerConfig];
let loggerConfig = FTLoggerConfig()
loggerConfig.enableCustomLog = true
loggerConfig.enableLinkRumData = true
loggerConfig.printCustomLogToConsole = true
loggerConfig.logLevelFilter = [NSNumber(value: FTLogStatus.statusError.rawValue), NSNumber(value: FTLogStatus.statusCritical.rawValue)]
loggerConfig.discardType = .discardOldest
FTSDKAgent.sharedInstance().startLogger(withConfigOptions: loggerConfig)
| 속성 | 타입 | 필수 | 의미 |
|---|---|---|---|
sampleRate |
int |
아니요 | 샘플링 비율. 범위 [0,100], 0은 수집 안 함, 100은 전체 수집, 기본값 100 |
enableCustomLog |
BOOL |
아니요 | 사용자 정의 로그 업로드 여부, 기본값 NO |
logLevelFilter |
NSArray |
아니요 | 수집할 사용자 정의 로그 상태 배열, 기본값은 전체 수집 |
enableLinkRumData |
BOOL |
아니요 | RUM 데이터 연결 여부, 기본값 NO |
discardType |
FTLogCacheDiscard |
아니요 | 로그가 제한上限에 도달한 후의 로그 폐기 규칙, 기본값 FTDiscard |
printCustomLogToConsole |
BOOL |
아니요 | 사용자 정의 로그를 콘솔에 출력할지 여부, 기본값 NO |
globalContext |
NSDictionary |
아니요 | 로그 사용자 정의 태그 추가, 추가 규칙은 사용자 정의 태그 사용 참조 |
Logger 로그 출력¶
현재 로그 내용은 30 KB로 제한되며, 초과하는 문자는 잘립니다.
사용 방법¶
/// info 유형 사용자 정의 로그 추가
-(void)info:(NSString *)content property:(nullable NSDictionary *)property;
/// warning 유형 사용자 정의 로그 추가
-(void)warning:(NSString *)content property:(nullable NSDictionary *)property;
/// error 유형 사용자 정의 로그 추가
-(void)error:(NSString *)content property:(nullable NSDictionary *)property;
/// critical 유형 사용자 정의 로그 추가
-(void)critical:(NSString *)content property:(nullable NSDictionary *)property;
/// ok 유형 사용자 정의 로그 추가
-(void)ok:(NSString *)content property:(nullable NSDictionary *)property;
open class FTLogger : NSObject, FTLoggerProtocol {}
public protocol FTLoggerProtocol : NSObjectProtocol {
optional func info(_ content: String, property: [AnyHashable : Any]?)
optional func warning(_ content: String, property: [AnyHashable : Any]?)
optional func error(_ content: String, property: [AnyHashable : Any]?)
optional func critical(_ content: String, property: [AnyHashable : Any]?)
optional func ok(_ content: String, property: [AnyHashable : Any]?)
}
로그 레벨¶
코드 예제¶
// 방법 1: FTSDKAgent 사용
// 참고: SDK가 초기화된 상태에서 사용해야 합니다. 그렇지 않으면 테스트 환경에서 assertion이 실패하여 크래시가 발생할 수 있습니다.
[[FTSDKAgent sharedInstance] logging:@"test_custom" status:FTStatusInfo];
// 방법 2: FTLogger 사용 (권장)
// SDK가 초기화되지 않은 경우 FTLogger의 메서드를 호출하여 사용자 정의 로그를 추가해도 실패하지만, assertion 실패로 인한 크래시는 발생하지 않습니다.
[[FTLogger sharedInstance] info:@"test" property:@{@"custom_key":@"custom_value"}];
사용자 정의 로그 콘솔 출력¶
printCustomLogToConsole = YES로 설정하여 사용자 정의 로그를 콘솔에 출력하면, Xcode 디버그 콘솔에서 다음 형식의 로그를 확인할 수 있습니다:
2023-06-29 13:47:56.960021+0800 App[64731:44595791]:os_log로그 출력의 표준 접두사[MACOS APP]: SDK 출력 사용자 정의 로그를 구분하는 접두사[INFO]: 사용자 정의 로그 레벨content: 사용자 정의 로그 내용{K=V,...,Kn=Vn}: 사용자 정의 속성