PageSense Android Full Stack SDKには、アプリケーション内でのSDKの動作を制御できるカスタマイズオプションが用意されています。これらのオプションにより、テストの設定の更新頻度、ログ出力の詳細度、運用の安定性のバランスを調整できます。
SDKのカスタマイズは任意です。オプションを設定しない場合、SDKは適切な初期設定で動作します。
カスタマイズできる項目
SDKのカスタマイズでは、次の項目を設定できます。
-
ポーリング間隔:プロジェクトの設定を更新する間隔
-
カスタムロガー:SDKログの処理
-
ログレベルの制御:実装したログ機能による制御
すべてのカスタマイズは、SDKの初期化時にPageSenseSDKOptionsを使用して適用されます。
ポーリングの設定
SDKは、ポーリングを使用してFull Stackプロジェクトの設定を更新します。ポーリングの実行頻度を設定できます。
ポーリングのルール
ポーリングは、アプリがアクティブな場合にのみ実行され、プロジェクトの設定に関するドキュメントに記載されているライフサイクルのルールに従います。
ポーリング間隔の設定
ポーリング間隔は分単位で指定します。
JAVAの例
- PageSenseSDKOptions pageSenseSDKOptions = new PageSenseSDKOptions();
- pageSenseSDKOptions.setPollingInterval(10);// 分単位
KOTLINの例
- val pageSenseSDKOptions = PageSenseSDKOptions()
- pageSenseSDKOptions.pollingInterval = 10// 分単位
カスタムログ
初期設定では、SDKは内部ロガーを使用してメッセージを記録します。
アプリケーションで一元管理型のログフレームワークを使用している場合は、カスタムロガーを組み込むことで、SDKログを独自に取得して管理できます。
カスタムロガーを設定すると、次のように動作します。
-
すべてのSDKログが設定したロガーに送信されます
-
ログを保存または表示する場所と方法を制御できます
カスタムロガーの作成
カスタムロガーは、PageSenseLoggerインターフェイスを実装し、重大度レベルごとにログメッセージを処理する必要があります。
JAVAの例
- PageSenseLogger pageSenseLogger = new PageSenseLogger() {
-
- @Override
- public void severe(@Nullable String logMessage) {
- }
-
- @Override
- public void error(@Nullable String logMessage) {
- }
-
- @Override
- public void warn(@Nullable String logMessage) {
- }
-
- @Override
- public void info(@Nullable String logMessage) {
- }
-
- @Override
- public void debug(@Nullable String logMessage) {
- }
-
- @Override
- public void trace(@Nullable String logMessage) {
- }
- };
KOTLINの例
- val pageSenseLogger = object : PageSenseLogger() {
-
- override fun severe(logMessage: String?) {
- }
-
- override fun error(logMessage: String?) {
- }
-
- override fun warn(logMessage: String?) {
- }
-
- override fun info(logMessage: String?) {
- }
-
- override fun debug(logMessage: String?) {
- }
-
- override fun trace(logMessage: String?) {
- }
- }
初期化時のSDKオプションの適用
ポーリングとログのオプションを設定したら、PageSenseSDKOptionsオブジェクトを指定してSDKを初期化します。
JAVAの例
- PageSenseSDKOptions pageSenseSDKOptions = new PageSenseSDKOptions();
- pageSenseSDKOptions.setPollingInterval(10); // 分単位
- pageSenseSDKOptions.setCustomLogger(pageSenseLogger);
-
- PageSenseClientBuilder.createNewPageSenseClient(
- 'sdkAccountId',
- 'sdkKey',
- 'projectName',
- pageSenseSDKOptions,
- new ProjectSettingsCallBack() {
-
- @Override
- public void onFailure(@NotNull String message, @Nullable Integer code) {
- }
-
- @Override
- public void onSuccess(PageSenseClient client) {
- // PageSenseClientはカスタムオプションで初期化されます
- pageSenseClient = client;
- }
- }
- );
KOTLINの例
- val pageSenseSDKOptions = PageSenseSDKOptions()
- pageSenseSDKOptions.pollingInterval = 10// 分単位
- pageSenseSDKOptions.customLogger = pageSenseLogger
-
- PageSenseClientBuilder.createNewPageSenseClient(
- 'sdkAccountId',
- 'sdkKey',
- 'projectName',
- pageSenseSDKOptions,
- object : ProjectSettingsCallBack {
-
- override fun onFailure(message: String, code: Int?) {
- }
-
- override fun onSuccess(client: PageSenseClient?) {
- // PageSenseClientはカスタムオプションで初期化されます
- pageSenseClient = client
- }
- }
- )
ログレベル
SDKでは、次のような複数のログの重大度レベルがサポートされています。
-
TRACE
-
DEBUG
-
INFO
-
WARN
-
ERROR
-
SEVERE
カスタムロガーを使用する場合、ログレベルの処理は実装によって完全に制御されます。
これにより、次のことが可能になります。
-
本番環境で詳細ログを抑制する
-
開発中に詳細ログを有効にする
-
既存のログパイプラインと連携する
ベストプラクティス
-
変更する明確な必要がない限り、デフォルトのポーリング間隔を使用する
-
ネットワークとバッテリーの使用量を抑えるため、過度なポーリングを避ける
-
本番環境ではカスタムロガーを使用する
-
詳細ログ(DEBUG/TRACE)は開発用ビルドでのみ使用する
カスタマイズを使用しない場合の動作
SDKオプションを指定しない場合。
-
デフォルトのポーリング動作が適用される
-
SDK内部のログ機能が使用される
-
SDKは標準設定で安全に動作する