Log 設定¶
Log 初期化設定¶
//Logger を有効化
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}:カスタム属性です。