Log 설정¶
Log 초기화 설정¶
// 로거 활성화
FTLoggerConfig *loggerConfig = [[FTLoggerConfig alloc]init];
loggerConfig.enableCustomLog = YES;
loggerConfig.enableLinkRumData = YES;
loggerConfig.logLevelFilter = @[@(FTStatusError),@(FTStatusCritical)];
loggerConfig.discardType = FTDiscardOldest;
[[FTMobileAgent sharedInstance] startLoggerWithConfigOptions:loggerConfig];
let loggerConfig = FTLoggerConfig()
loggerConfig.enableCustomLog = true
loggerConfig.enableLinkRumData = true
loggerConfig.logLevelFilter = [NSNumber(value: FTLogStatus.statusError.rawValue),NSNumber(value: FTLogStatus.statusCritical.rawValue)] // loggerConfig.logLevelFilter = [2,3]
loggerConfig.discardType = .discardOldest
FTMobileAgent.sharedInstance().startLogger(withConfigOptions: loggerConfig)
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
| sampleRate | int | 아니요 | 샘플링 비율.取值范围 [0,100],0은 수집 안 함, 100은 전체 수집, 기본값 100 |
| enableCustomLog | BOOL | 아니요 | 사용자 정의 로그 업로드 여부. 기본값 NO |
| printCustomLogToConsole | BOOL | 아니요 | 사용자 정의 로그를 콘솔에 출력할지 여부 설정. 기본값 NO, 사용자 정의 로그 출력 형식 |
| logLevelFilter | NSArray | 아니요 | 로그 레벨 필터 설정, 기본값은 설정 안 함. 예: 1. 로그 레벨이 Info와 Error인 로그를 수집하려면 @[@(FTStatusInfo),@(FTStatusError)] 또는 @[@0,@1]로 설정; 2. 사용자 정의 레벨을 포함하여 수집하는 경우, 예를 들어 "customLevel"과 Error를 수집하려면 @[@"customLevel",@(FTStatusError)]로 설정. SDK 1.5.16 이상 버전에서 사용자 정의 레벨 필터 지원 |
| enableLinkRumData | BOOL | 아니요 | RUM 데이터와 연결 여부. 기본값 NO |
| globalContext | NSDictionary | 아니요 | 로그 사용자 정의 태그 추가. 추가 규칙은 여기 참조 |
| logCacheLimitCount | int | 아니요 | 로컬 캐시 최대 로그 항목 수 제한 [1000,), 로그가 많을수록 디스크 캐시 부하가 커짐, 기본값 5000 |
| discardType | FTLogCacheDiscard | 아니요 | 로그가 제한上限에 도달한 후의 로그 폐기 규칙 설정. 기본값 FTDiscard. FTDiscard는 로그 데이터 수가 최대값(5000)보다 클 때 추가 데이터를 폐기; FTDiscardOldest는 로그 데이터가 최대값보다 클 때 오래된 데이터를 폐기 |
샘플링 비율 매개변수 명명
SDK 1.6.6及以上 버전에서는 samplerate가 폐기되었으며, 현재는 계속 사용할 수 있지만 sampleRate와 동일한 값에 매핑됩니다. 새 코드에서는 sampleRate 사용을 권장합니다. 1.6.6 미만 버전에서는 계속 samplerate를 사용하세요.
Logger 로그 출력¶
SDK 초기화 Log 설정 시, enableCustomLog를 구성하여 사용자 정의 로그를 추가할 수 있습니다.
현재 로그 내용은 30 KB로 제한되며, 문자를 초과하는 부분은 잘립니다.
사용 방법¶
//
// FTLogger.h
// GuanceSDK
/// info 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
-(void)info:(NSString *)content property:(nullable NSDictionary *)property;
/// warning 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
-(void)warning:(NSString *)content property:(nullable NSDictionary *)property;
/// error 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
-(void)error:(NSString *)content property:(nullable NSDictionary *)property;
/// critical 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
-(void)critical:(NSString *)content property:(nullable NSDictionary *)property;
/// ok 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
-(void)ok:(NSString *)content property:(nullable NSDictionary *)property;
/// 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - status: 로그 상태 레벨
/// - property: 사용자 정의 속성(선택 사항)
- (void)log:(NSString *)content status:(NSString *)status property:(nullable NSDictionary *)property;
open class FTLogger : NSObject, FTLoggerProtocol {}
public protocol FTLoggerProtocol : NSObjectProtocol {
/// info 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
optional func info(_ content: String, property: [AnyHashable : Any]?)
/// warning 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
optional func warning(_ content: String, property: [AnyHashable : Any]?)
/// error 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
optional func error(_ content: String, property: [AnyHashable : Any]?)
/// critical 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
optional func critical(_ content: String, property: [AnyHashable : Any]?)
/// ok 레벨 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - property: 사용자 정의 속성(선택 사항)
optional func ok(_ content: String, property: [AnyHashable : Any]?)
/// 사용자 정의 로그 추가
/// - Parameters:
/// - content: 로그 내용
/// - status: 로그 상태 레벨
/// - property: 사용자 정의 속성(선택 사항)
optional func log(_ content: String, status: String, property: [AnyHashable : Any]?)
}
로그 레벨¶
코드 예시¶
사용자 정의 로그를 콘솔에 출력¶
printCustomLogToConsole = YES로 설정하면 사용자 정의 로그를 콘솔에 출력할 수 있으며, Xcode 디버그 콘솔에서 다음과 같은 형식의 로그를 확인할 수 있습니다:
iOS/tvOS:
macOS:
2023-06-29 13:47:56.960021+0800 App[64731:44595791]: os_log 로그 출력의 표준 접두사;
[IOS APP] / [MACOS APP]: SDK가 사용자 정의 로그를 출력하는 구분 접두사. SDK는 실행 중인 플랫폼에 따라 접두사를 선택합니다:
[INFO]: 사용자 정의 로그의 레벨;
content: 사용자 정의 로그 내용;
{K=V,...,Kn=Vn}: 사용자 정의 속성.