プッシュ通知機能のログは、デフォルトでは標準出力にログを出力しています。
そのため、アプリケーション開発時にはプラットフォーム固有の開発環境で参照できますが、運用環境では障害時調査のためにログをファイルに記録しておく事を推奨します。
ログ出力APIを使用することで、ログファイルが永続化されるだけでなく、ログ送信の対象となりサーバ側で収集できます。
出力されたログファイルを送信する場合は、 Android版は3.3.5.2 ログ出力とサーバへの送信、 iOS版は3.4.6.2 ログ出力とサーバへの送信、 Windows版は3.5.5.2 ログ出力とサーバへの送信、 ハイブリッドアプリケーションは2.3.28.4.1 ログ出力とサーバへの送信 のsendメソッドを参照してください。
IMAPSではログをファイル出力するクラスを提供しています。
プッシュのログをIMAPSが提供しているクラスに変更するための手順を以下に示します。本節に記述されている事項は、ネイティブアプリケーションおよびハイブリッドアプリケーションの両方に適用可能です。ログクラスの定義が未設定の場合や、誤ったログクラスを設定するなどの定義値誤りの場合は、ログは標準出力に出力されます。
// ログクラスを設定 push.LogClassName=com.fujitsu.imaps.plugin.push.PushLogImpl
#import <IMAPSPush/FJPExLoggerImpl.h> // ログ拡張クラスのインスタンスをグローバル変数に設定 // ※プッシュ部品クラスからも参照するため下記変数名で設定すること id<FJPLogger> fjpLogger; @implementation AppDelegate @synthesize window; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 親クラスの同名関数の実行 [super application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions]; // (省略) // 親クラスの同名関数の実行後、グローバル変数に代入 fjpLogger = [[FJPExLoggerImpl alloc] init]; return YES; }
// 拡張したログクラスの名前空間を設定 <push.LogClassNameSpace>ImapsPushEx</push.LogClassNameSpace> // 拡張したログクラスを設定 <push.LogClassName>Com.Fujitsu.Imaps.PushEx.PushLogImpl</push.LogClassName>
注意
ハイブリッドアプリのJSプロジェクトでは、DLLの参照ができないためDLL参照用の「クラスライブラリ」プロジェクトを作成し、JSプロジェクトから参照させるよう設定してください。
バックグラウンド実行を許可しておりアプリケーションが起動していない場合、プッシュ受信制御はバックグラウンドタスクにて行われます。
バックグラウンドタスクの実行は、アプリケーションが起動していない状態で実行されます。そのためバックグラウンドタスク実行中に発生したエラーはプッシュ部品側のログ出力クラスまたは、アプリケーション側で拡張したログ出力クラスからアプリケーションに返却できません。
そのためバックグラウンドタスク実行時に発生したエラー内容の確認が必要な場合は、プッシュクライアント設定ファイルにログ出力用のファイル名を指定してください。
プッシュクライアント設定ファイルについては、付録D プッシュクライアント設定ファイルを参照してください。
例:<Push.BackGroundTaskErrorLogFileName>Error.log</Push.BackGroundTaskErrorLogFileName>
プッシュクライアント設定ファイルにログ出力用のファイル名が指定されている場合は、指定されたファイル名でログ出力用ファイルを作成し以下のフォルダに格納します。
「C:\Users\{ユーザ名}\AppData\Local\Packages\{パッケージファミリ名}\LocalState」
初期設定ファイルにログ出力用のファイル名が指定されていない場合は、ログ出力用ファイルは出力されません。プッシュのログは、以下のように出力されます。
詳細は"運用ガイド"の"IMAPSクライアントアプリケーションのログによる保守"を参照してください。