コンテンツにスキップ

Log 設定

Log 初期化設定

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 いいえ カスタム Log をアップロードするかどうか、デフォルト NO
logLevelFilter NSArray いいえ 収集するカスタム Log のステータス配列を設定、デフォルトは全件収集
enableLinkRumData BOOL いいえ RUM データと関連付けるかどうか、デフォルト NO
discardType FTLogCacheDiscard いいえ ログが上限に達した後の破棄ルールを設定、デフォルト FTDiscard
printCustomLogToConsole BOOL いいえ カスタムログをコンソールに出力するかどうか、デフォルト NO
globalContext NSDictionary いいえ Log のカスタムタグを追加、追加ルールは カスタムタグの使用 を参照

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

ログレベル

typedef NS_ENUM(NSInteger, FTLogStatus) {
    FTStatusInfo = 0,
    FTStatusWarning,
    FTStatusError,
    FTStatusCritical,
    FTStatusOk,
};
public enum FTLogStatus : Int, @unchecked Sendable {
    case statusInfo = 0
    case statusWarning = 1
    case statusError = 2
    case statusCritical = 3
    case statusOk = 4
}

コード例

// 方法1:FTSDKAgent 経由
// 注意:使用時には SDK が初期化済みであることを確認する必要があります。そうでない場合、テスト環境でアサーションに失敗してクラッシュします。
[[FTSDKAgent sharedInstance] logging:@"test_custom" status:FTStatusInfo];

// 方法2:FTLogger 経由(推奨)
// SDK が初期化されていない場合、FTLogger のメソッドを呼び出してカスタムログを追加しても失敗しますが、アサーション失敗によるクラッシュは発生しません。
[[FTLogger sharedInstance] info:@"test" property:@{@"custom_key":@"custom_value"}];
// 方法1:FTSDKAgent 経由
FTSDKAgent.sharedInstance().logging("contentStr", status: .statusInfo, property: ["custom_key":"custom_value"])

// 方法2:FTLogger 経由(推奨)
FTLogger.shared().info("contentStr", property: ["custom_key":"custom_value"])

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

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

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 ログ出力の標準プレフィックス
  • [MACOS APP]:SDK が出力するカスタムログを区別するためのプレフィックス
  • [INFO]:カスタムログのレベル
  • content:カスタムログの内容
  • {K=V,...,Kn=Vn}:カスタム属性

フィードバック

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