コンテンツにスキップ

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]?)
}

ログレベル

///イベントレベルとステータス。デフォルト:FTStatusInfo
typedef NS_ENUM(NSInteger, FTLogStatus) {
    /// 情報
    FTStatusInfo         = 0,
    /// 警告
    FTStatusWarning,
    /// エラー
    FTStatusError,
    /// 重大
    FTStatusCritical,
    /// 回復
    FTStatusOk,
};
///イベントレベルとステータス。デフォルト:FTStatusInfo
public enum FTLogStatus : Int, @unchecked Sendable {
    /// 情報
    case statusInfo = 0
    /// 警告
    case statusWarning = 1
    /// エラー
    case statusError = 2
    /// 重大
    case statusCritical = 3
    /// 回復
    case statusOk = 4
}

コード例

// SDK が正常に初期化されていない場合、カスタムログの追加は失敗します
[[FTLogger sharedInstance] info:@"test" property:@{@"custom_key":@"custom_value"}];
// SDK が正常に初期化されていない場合、カスタムログの追加は失敗します
FTLogger.shared().info("contentStr", property: ["custom_key":"custom_value"])

カスタムログのコンソール出力

printCustomLogToConsole = YES を設定すると、カスタムログのコンソール出力が有効になり、Xcode のデバッグコンソールに以下の形式のログが表示されます:

iOS/tvOS:

2023-06-29 13:47:56.960021+0800 App[64731:44595791] [IOS APP] [INFO] content ,{K=V,...,Kn=Vn}

macOS:

2023-06-29 13:47:56.960021+0800 App[64731:44595791] [MACOS APP] [INFO] content ,{K=V,...,Kn=Vn}

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}:カスタム属性です。

フィードバック

このページは役に立ちましたか?